/*
 * Copyright (c) Tony Bybell 1999-2012.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 */

#include "globals.h"
#include <config.h>
#include "pixmaps.h"

/* XPM */
static const char *chart_organisation[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 75 1",
    "  c #5ED7B33C5AB0",
    ". c #6030B3F35AB0",
    "X c #6030B4A95C17",
    "o c #62D3B6145D7A",
    "O c #62D3B6C85D7A",
    "+ c #62D3B77C5ED7",
    "@ c #67E5BA4462D3",
    "# c #67E5BAF4641D",
    "$ c #6DE7BDAF67E5",
    "% c #6F11BFB46A57",
    "& c #75CEC2B26F11",
    "* c #7D35C6F175CE",
    "= c #7F3EC83A77F7",
    "- c #852ACB697D35",
    "; c #8807CCAC7F3E",
    ": c #9A999A999A99",
    "> c #A050A050A050",
    ", c #A75FA75FA75F",
    "< c #AEE1AEE1AEE1",
    "1 c #B6C8B6C8B6C8",
    "2 c #BF08BF08BF08",
    "3 c #8D95CFC9852A",
    "4 c #8F63D1058715",
    "5 c #9587D4AD8BC2",
    "6 c #93CDD23F8E7D",
    "7 c #9587D2DB8F63",
    "8 c #9663D5488CAC",
    "9 c #98EDD5E28F63",
    "0 c #9663D3779048",
    "q c #9816D412920D",
    "w c #9B6DD714920D",
    "e c #9C40D7AD92ED",
    "r c #9DE3D84593CD",
    "t c #9F82D9759587",
    "y c #A050D9759663",
    "u c #A37CDB3998ED",
    "i c #A37CDB3999C4",
    "p c #A50DDC649B6D",
    "a c #A69ADCF99C40",
    "s c #A75FDD8E9D12",
    "d c #A9A8DEB69F82",
    "f c #B284DE22AB2A",
    "g c #BAF4E194B4A9",
    "h c #BDAFE2B7B77C",
    "j c #C457E4F8BF08",
    "k c #823DB3F3E06F",
    "l c #8F63BDAFE588",
    "z c #9048BE5CE617",
    "x c #9C40C64BEB10",
    "c c #9D12C83AEB9C",
    "v c #A75FCD4CF077",
    "b c #A9A8CFC9F100",
    "n c #B33CD4ADF4B4",
    "m c #B4A9D5E2F53B",
    "M c #BD01DA0CF85A",
    "N c #BD01DAA3F85A",
    "B c #C64BC64BC64B",
    "V c #CC0BCC0BCC0B",
    "C c #D23FD23FD23F",
    "Z c #D548D548D548",
    "A c #D714D714D714",
    "S c #D845D845D845",
    "D c #D9C0D9C0D9C0",
    "F c #DBCFDBCFDBCF",
    "G c #DCF9DCF9DCF9",
    "H c #D23FEB10CDEC",
    "J c #D377EB9CCFC9",
    "K c #D412EC27D067",
    "L c #D548ECB2D23F",
    "P c #C3AFDE22FA6A",
    "I c #D975DFDDF53B",
    "U c #DE22E468F6CC",
    "Y c #DF4AE588F751",
    "T c #E348E96BF85A",
    "R c None",
    /* pixels */
    "RRRRRRRRRRRRRRRR",
    "RRRRRRPNmbRRRRRR",
    "RRRRRRMTYcRRRRRR",
    "RRRRRRnUIzRRRRRR",
    "RRRRRRvxlkRRRRRR",
    "RRRRRRRRRRRRRRRR",
    "RRRRRRRSZRRRRRRR",
    "RRGFDACVB21<,>RR",
    "RRDRRRRRRRRRR:RR",
    "RRRRRRRRRRRRRRRR",
    "dspuRRe84;RR%#+o",
    "aLKtRR5jh=RR@q0X",
    "iJHeRR3gf&RRO76 ",
    "yrw9RR-*&$RRX.  ",
    "RRRRRRRRRRRRRRRR",
    "RRRRRRRRRRRRRRRR"};

/* XPM */
static const char *cog[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 103 2",
    "   c #494949",
    ".  c #4E4E4E",
    "X  c #515151",
    "o  c gray32",
    "O  c #535353",
    "+  c #585858",
    "@  c #5A5A5A",
    "#  c #5B5B5B",
    "$  c gray36",
    "%  c gray38",
    "&  c #626262",
    "*  c #646464",
    "=  c #676767",
    "-  c DimGray",
    ";  c #6A6A6A",
    ":  c gray42",
    ">  c #6D6D6D",
    ",  c gray43",
    "<  c #6F6F6F",
    "1  c #717171",
    "2  c #767676",
    "3  c #777777",
    "4  c #797979",
    "5  c gray48",
    "6  c #7E7E7E",
    "7  c #808080",
    "8  c #818181",
    "9  c gray51",
    "0  c #838383",
    "q  c #848484",
    "w  c gray52",
    "e  c gray53",
    "r  c #898989",
    "t  c #8B8B8B",
    "y  c gray55",
    "u  c gray56",
    "i  c #939393",
    "p  c gray58",
    "a  c #959595",
    "s  c gray60",
    "d  c #9A9A9A",
    "f  c gray61",
    "g  c gray62",
    "h  c #A0A0A0",
    "j  c gray63",
    "k  c gray64",
    "l  c #A4A4A4",
    "z  c #A5A5A5",
    "x  c gray65",
    "c  c #A7A7A7",
    "v  c gray66",
    "b  c #AAAAAA",
    "n  c gray67",
    "m  c #ACACAC",
    "M  c gray68",
    "N  c gray69",
    "B  c #B1B1B1",
    "V  c #B2B2B2",
    "C  c gray71",
    "Z  c #B6B6B6",
    "A  c #B7B7B7",
    "S  c #B9B9B9",
    "D  c gray73",
    "F  c #BCBCBC",
    "G  c gray74",
    "H  c gray",
    "J  c gray75",
    "K  c #C0C0C0",
    "L  c #C1C1C1",
    "P  c gray76",
    "I  c #C3C3C3",
    "U  c gray77",
    "Y  c #C5C5C5",
    "T  c #C6C6C6",
    "R  c gray78",
    "E  c #C8C8C8",
    "W  c gray79",
    "Q  c #CACACA",
    "!  c #CBCBCB",
    "~  c gray80",
    "^  c #CDCDCD",
    "/  c #CECECE",
    "(  c gray81",
    ")  c #D0D0D0",
    "_  c gray82",
    "`  c #D2D2D2",
    "'  c gray83",
    "]  c #D5D5D5",
    "[  c gray84",
    "{  c #D8D8D8",
    "}  c gray85",
    "|  c gray86",
    " . c gainsboro",
    ".. c #DDDDDD",
    "X. c gray87",
    "o. c #E2E2E2",
    "O. c #E4E4E4",
    "+. c gray90",
    "@. c #E7E7E7",
    "#. c #E9E9E9",
    "$. c gray93",
    "%. c gray100",
    "&. c None",
    /* pixels */
    "&.&.&.&.&.&.W I I L &.&.&.&.&.&.",
    "&.&.&._ / / W +.+.M Z N M &.&.&.",
    "&.&._ / / I I  . .N N M c k &.&.",
    "&._  .$. .I D [ [ N M / #.Z t &.",
    "&.W I  .[ { { { [ { _ / W 3 1 &.",
    "&.&.I [ / W D f j I I L Z t &.&.",
    "W I L { / D 0 3 6 u I L / u q q ",
    "I #.[ W / k q &.&.d M I D I  .: ",
    "D o.[ I / N u &.&.a c I D L _ & ",
    "k u j _ I / j d a u L D D & + O ",
    "&.&.M I L I W c k L D Z c : &.&.",
    "&.M c [ I / _ W W / I L W , = &.",
    "&.k D  .k q q L L , , k _ 0 O &.",
    "&.&.0 1 & 3 q / W & @ @ .   &.&.",
    "&.&.&., : 4 0 D N $ @ @ . &.&.&.",
    "&.&.&.&.&.&., + O O &.&.&.&.&.&."};

/* XPM */
static const char *chart_line[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 78 1",
    "  c #2E5FA5",
    ". c #3062A9",
    "X c #3062AA",
    "o c #3264AC",
    "O c #3366AE",
    "+ c #3468B1",
    "@ c #3568B2",
    "# c #366BB5",
    "$ c #376BB6",
    "% c #3C72BF",
    "& c #3D74C2",
    "* c #3E75C3",
    "= c #3E76C4",
    "- c #3F76C5",
    "; c #3F77C6",
    ": c #4670BB",
    "> c #5A6BAD",
    ", c #4277C6",
    "< c #4078C7",
    "1 c #4179C9",
    "2 c #417ACA",
    "3 c #427ACB",
    "4 c #427BCC",
    "5 c #437CCC",
    "6 c #437CCD",
    "7 c #447DCE",
    "8 c #457ED0",
    "9 c #457FD1",
    "0 c #709FBD",
    "q c #8D527D",
    "w c #AE4565",
    "e c #ED222B",
    "r c #EE262E",
    "t c #EE272F",
    "y c #EF2830",
    "u c #EF2B32",
    "i c #EF2D34",
    "p c #F02E35",
    "a c #F03137",
    "s c #F03238",
    "d c #F13339",
    "f c #F1363C",
    "g c #F1373C",
    "h c #F2383D",
    "j c #F2393E",
    "k c #E73741",
    "l c #E83841",
    "z c #F23B40",
    "x c #F03D43",
    "c c #F23C41",
    "v c #F33D42",
    "b c #F33F43",
    "n c #CC4D62",
    "m c #F44246",
    "M c #F44347",
    "N c #F44548",
    "B c #F54A4D",
    "V c #F64D4F",
    "C c #F75254",
    "Z c #F85758",
    "A c #F85859",
    "S c #F95C5C",
    "D c #F95D5D",
    "F c #F96160",
    "G c #FA6362",
    "H c #FB6665",
    "J c #FB6765",
    "K c #FB6B69",
    "L c #8F6493",
    "P c #A85E82",
    "I c #8CA1C0",
    "U c #93ACD1",
    "Y c #9CB1D0",
    "T c #FE9694",
    "R c #FC9997",
    "E c #FEB5B2",
    "W c gray100",
    "Q c None",
    /* pixels */
    "QQQQQQQQQQQQQQQQ",
    "QQQQQQQQQQQQQBNb",
    "QQQQQQQQQQQQQmRj",
    "QQQQQQQQQQQQmbjd",
    "QQQQQQQQQQQQzfdQ",
    "QQQQQQQ971QjfaQQ",
    "KHGQQQQ5Y0>kq$+O",
    "HEDAQQ51-:kw$+IX",
    "FDACVP,-QdiQQO. ",
    "QQQ7LnlfdiyQQQQQ",
    "QQ51,=faTrQQQQQQ",
    "951-QQQyreQQQQQQ",
    "1U=QQQQQQQQQQQQQ",
    "1=%QQQQQQQQQQQQQ",
    "QQQQQQQQQQQQQQQQ",
    "QQQQQQQQQQQQQQQQ"};

/* XPM */
static const char *flag_green[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 107 2",
    "   c #321D16",
    ".  c #507A51",
    "X  c #87581D",
    "o  c #8F5F21",
    "O  c #9A6A2B",
    "+  c #9C6B2C",
    "@  c #886534",
    "#  c #976E35",
    "$  c #A4722E",
    "%  c #AC7935",
    "&  c #AC7B38",
    "*  c #B07E3A",
    "=  c #4DA630",
    "-  c #4CA631",
    ";  c #4DA631",
    ":  c #4CA534",
    ">  c #47A538",
    ",  c #45A33C",
    "<  c #52A035",
    "1  c #47B133",
    "2  c #47B233",
    "3  c #4CB335",
    "4  c #3B9477",
    "5  c #44864D",
    "6  c #548D49",
    "7  c #4C984C",
    "8  c #539447",
    "9  c #5B9946",
    "0  c #478856",
    "q  c #428559",
    "w  c #4B8C59",
    "e  c #79B75E",
    "r  c #63A76A",
    "t  c #74CD5F",
    "y  c #77CE63",
    "u  c #78CF64",
    "i  c #7ACF66",
    "p  c #75C568",
    "a  c #7BCD6A",
    "s  c #7CCF68",
    "d  c #7DD06A",
    "f  c #7ED16C",
    "g  c #70C777",
    "h  c #BB8436",
    "j  c #B1803C",
    "k  c #BE8C45",
    "l  c #C08C42",
    "z  c #C79246",
    "x  c #CA974D",
    "c  c #D49E53",
    "v  c #D6A256",
    "b  c #DBAF6E",
    "n  c #DFB77D",
    "m  c #80D16D",
    "M  c #3C7BA0",
    "N  c #3084A1",
    "B  c #478787",
    "V  c #78BCB3",
    "C  c #90AB8D",
    "Z  c #ACB3AC",
    "A  c #E2BC86",
    "S  c #C0B4A0",
    "D  c #96C282",
    "F  c #96CF8E",
    "G  c #8ED680",
    "H  c #92D884",
    "J  c #94D986",
    "K  c #9BDB90",
    "L  c #A2C99D",
    "P  c #A1DE95",
    "I  c #A3DE97",
    "U  c #A3DF98",
    "Y  c #A4DF99",
    "T  c #A5DE9B",
    "R  c #A5DF9B",
    "E  c #A7E09E",
    "W  c #9EDCA7",
    "Q  c #98D7B6",
    "!  c #A9D3A0",
    "~  c #A9E0A1",
    "^  c #ABE1A2",
    "/  c #AAE0A3",
    "(  c #ABE0A3",
    ")  c #AFE3A7",
    "_  c #B0E3A8",
    "`  c #B0E3AA",
    "'  c #B1E3AB",
    "]  c #B6E4AE",
    "[  c #B7E6B0",
    "{  c #B7E6B2",
    "}  c #B9E6B4",
    "|  c #B9E7B4",
    " . c #BAE7B6",
    ".. c #BCE7B7",
    "X. c #BCE7B8",
    "o. c #BFE9B9",
    "O. c #BEE8BA",
    "+. c #E4C18F",
    "@. c #C0E9BD",
    "#. c #C2E9BF",
    "$. c #C3EBC1",
    "%. c #C6EBC3",
    "&. c #C7ECC5",
    "*. c #C8ECC6",
    "=. c #CBEDC9",
    "-. c #FBF7EF",
    ";. c None",
    /* pixels */
    ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.",
    ";.;.;.;.;.;.;.. 6 7 0 @ X X ;.;.",
    ";.;.;.;.;.;.< e #.] m 8 -.h X ;.",
    ";.B : - ; = D %.=.o...S A $ ;.;.",
    ";.w @.X...$.*._ O.Y W # +.o ;.;.",
    ";.8 ~ u u H I [ { U F % b X ;.;.",
    ";.9 ^ i s H R  ._ P L l n X ;.;.",
    "M ! K d f J E &.} [ C v z X ;.;.",
    "N ` y t G ) | ( p g Z v * X ;.;.",
    "4 T / / ' a 3 r Q V   c O ;.;.;.",
    "q , 2 1 > 5 ;.;.;.;.+ v X ;.;.;.",
    ";.;.;.;.;.;.;.;.;.X j v X ;.;.;.",
    ";.;.;.;.;.;.;.;.;.X x v X ;.;.;.",
    ";.;.;.;.;.;.;.;.;.X v k X ;.;.;.",
    ";.;.;.;.;.;.;.;.;.X v & ;.;.;.;.",
    ";.;.;.;.;.;.;.;.;.X X X ;.;.;.;."};

/* XPM */
static const char *arrow_divide[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 127 2",
    "   c #2C6C27",
    ".  c #2F702A",
    "X  c #2F712B",
    "o  c #31732C",
    "O  c #32742D",
    "+  c #32752D",
    "@  c #33762E",
    "#  c #34772F",
    "$  c #35782F",
    "%  c #357830",
    "&  c #367930",
    "*  c #367A31",
    "=  c #387C32",
    "-  c #3A7E34",
    ";  c #3B7F35",
    ":  c #3E8438",
    ">  c #3F8538",
    ",  c #408539",
    "<  c #43863D",
    "1  c #438A3C",
    "2  c #448B3D",
    "3  c #478E3F",
    "4  c #478C41",
    "5  c #498B43",
    "6  c #489040",
    "7  c #499141",
    "8  c #499142",
    "9  c #4B9443",
    "0  c #4C9145",
    "q  c #4C9344",
    "w  c #4C9544",
    "e  c #4E9746",
    "r  c #4E9846",
    "t  c #4F9847",
    "y  c #53974C",
    "u  c #509A48",
    "i  c #539D4A",
    "p  c #55A04C",
    "a  c #56A24D",
    "s  c #57A34E",
    "d  c #58A44F",
    "f  c #59A550",
    "g  c #5AA651",
    "h  c #5BA751",
    "j  c #5BA852",
    "k  c #5CA952",
    "l  c #5EAA55",
    "z  c #5EAB54",
    "x  c #5EAC54",
    "c  c #5FAC55",
    "v  c #61A35B",
    "b  c #62A45B",
    "n  c #65A75E",
    "m  c #60AE56",
    "M  c #61AF57",
    "N  c #62B057",
    "B  c #62B158",
    "V  c #65B45A",
    "C  c #66B55B",
    "Z  c #69B95E",
    "A  c #6BAB63",
    "S  c #6BAC65",
    "D  c #6CAF64",
    "F  c #6FAF68",
    "G  c #6BB560",
    "H  c #6BBC60",
    "J  c #6EBA64",
    "K  c #6CBD61",
    "L  c #71B16B",
    "P  c #71B268",
    "I  c #73B36D",
    "U  c #72B469",
    "Y  c #74B66C",
    "T  c #76B66D",
    "R  c #76B76D",
    "E  c #72BE67",
    "W  c #78B670",
    "Q  c #78B770",
    "!  c #7BB974",
    "~  c #7ABE75",
    "^  c #7CBE77",
    "/  c #7DBF77",
    "(  c #6FC164",
    ")  c #70C265",
    "_  c #71C466",
    "`  c #72C466",
    "'  c #72C566",
    "]  c #73C668",
    "[  c #7FC079",
    "{  c #80C176",
    "}  c #82C27C",
    "|  c #84C37D",
    " . c #85C37E",
    ".. c #84C579",
    "X. c #87C47F",
    "o. c #89CA7E",
    "O. c #8ACC7F",
    "+. c #87C580",
    "@. c #88C582",
    "#. c #89C682",
    "$. c #8BC784",
    "%. c #8CC683",
    "&. c #8ACC80",
    "*. c #8CC885",
    "=. c #8FCC85",
    "-. c #90C988",
    ";. c #90CA89",
    ":. c #92CA8A",
    ">. c #94CB8C",
    ",. c #95CC8D",
    "<. c #95CC8E",
    "1. c #97CE8F",
    "2. c #98CE90",
    "3. c #9ACF92",
    "4. c #9BCF93",
    "5. c #9ED196",
    "6. c #A1D398",
    "7. c #A2D499",
    "8. c #A4D49C",
    "9. c #A6D59D",
    "0. c #A8D79F",
    "q. c #A9D7A0",
    "w. c #AAD7A1",
    "e. c #ABD8A2",
    "r. c #ADDAA4",
    "t. c gray100",
    "y. c None",
    /* pixels */
    "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.",
    "y.y.y.' _ y.y.y.y.y.y.z d y.y.y.",
    "y.y.' &.o.H y.y.y.y.h Y U u y.y.",
    "] ' O.r.q...C N z g Y 4.1.A 3 2 ",
    "_ K =.e.q.{ m z g p P 1.,.F 1 , ",
    "y.K E 0.8.m y.y.y.y.r >.;.0 > y.",
    "y.Z J 8.7.l g y.y.e 0 ;.*.4 ; y.",
    "y.C G 6.5.R p y.y.8 n $.@.< * y.",
    "y.N m *.4.,.D e 8 b X.X.L * + y.",
    "y.y.g p W ;.;.! W @.| v * o y.y.",
    "y.y.y.i t q I @.X.S = $ o y.y.y.",
    "y.y.y.y.y.3 y | } 5 # y.y.y.y.y.",
    "y.y.y.y.y.y.> / ^ + y.y.y.y.y.y.",
    "y.y.y.y.y.y.; ^ ~ X y.y.y.y.y.y.",
    "y.y.y.y.y.y.$ + X   y.y.y.y.y.y.",
    "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y."};

/* XPM */
static const char *arrow_inout[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 109 2",
    "   c #418A3E",
    ".  c #428B3F",
    "X  c #428C3F",
    "o  c #438D40",
    "O  c #448D40",
    "+  c #458E41",
    "@  c #458F41",
    "#  c #469042",
    "$  c #479143",
    "%  c #499244",
    "&  c #499445",
    "*  c #4A9545",
    "=  c #4B9646",
    "-  c #4C9747",
    ";  c #4E974A",
    ":  c #4D9948",
    ">  c #4E9948",
    ",  c #4F9B4A",
    "<  c #509C4A",
    "1  c #519E4B",
    "2  c #529F4C",
    "3  c #5A9C56",
    "4  c #5B9E57",
    "5  c #54A14E",
    "6  c #55A24E",
    "7  c #56A34F",
    "8  c #57A450",
    "9  c #57A550",
    "0  c #58A551",
    "q  c #58A651",
    "w  c #59A752",
    "e  c #5AA852",
    "r  c #5AA853",
    "t  c #5BA953",
    "y  c #5BAA54",
    "u  c #5CAA54",
    "i  c #5CAB54",
    "p  c #5DAB55",
    "a  c #5EAA57",
    "s  c #5DAC55",
    "d  c #5EAD56",
    "f  c #5FAD56",
    "g  c #5FAE57",
    "h  c #5EA15A",
    "j  c #60A15C",
    "k  c #62A45F",
    "l  c #60AF58",
    "z  c #61B058",
    "x  c #61B159",
    "c  c #62B159",
    "v  c #62B259",
    "b  c #63B35A",
    "n  c #64B35A",
    "m  c #64B25B",
    "M  c #64B45B",
    "N  c #64B05C",
    "B  c #66B65C",
    "V  c #67B75D",
    "C  c #68B95E",
    "Z  c #69B95F",
    "A  c #68A963",
    "S  c #6DB167",
    "D  c #6ABB60",
    "F  c #6BBC60",
    "G  c #6CBD61",
    "H  c #6CBE62",
    "J  c #6DBF62",
    "K  c #6DBF63",
    "L  c #6EB168",
    "P  c #6FB369",
    "I  c #77B96F",
    "U  c #75B071",
    "Y  c #77B373",
    "T  c #79B374",
    "R  c #77B871",
    "E  c #78BB70",
    "W  c #79BB71",
    "Q  c #79B972",
    "!  c #7ABA73",
    "~  c #7BB874",
    "^  c #7EB679",
    "/  c #6EC063",
    "(  c #70C365",
    ")  c #71C365",
    "_  c #72C466",
    "`  c #72C566",
    "'  c #72C467",
    "]  c #73C667",
    "[  c #73C269",
    "{  c #74C768",
    "}  c #85BF7D",
    "|  c #87CA7E",
    " . c #86BD80",
    ".. c #89BF83",
    "X. c #8AC184",
    "o. c #8BC186",
    "O. c #8DC387",
    "+. c #8ACD80",
    "@. c #8BCE81",
    "#. c #8CCC83",
    "$. c #90CF86",
    "%. c #92C68C",
    "&. c #93C78C",
    "*. c #94C78D",
    "=. c #98CD8E",
    "-. c #9FD197",
    ";. c #A0D098",
    ":. c #A7D69E",
    ">. c None",
    /* pixels */
    "{ { ] ] ( >.>.>.>.>.>.B M c l d ",
    "{ @.$.( >.K >.>.>.>.B >.n W R u ",
    "] @.:.#.[ K >.>.>.>.n c W *.W r ",
    "( ( | =.-.F >.>.>.>.c &.} W 0 0 ",
    "( >.K -.-.Z >.>.>.>.g &.O.u >.8 ",
    ">.K K F Z Z >.>.>.>.u t 0 0 6 >.",
    ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.",
    ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.",
    ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.",
    ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.",
    ">.c c g d r >.>.>.>.1 < : ; * >.",
    "B >.c X.o.r >.>.>.>., ^ T * >.$ ",
    "l g R ~  .8 >.>.>.>., T A h % @ ",
    "d R ..L 8 6 >.>.>.>.* ; k U 4 X ",
    "d L L 9 >.5 >.>.>.>.* >.@ h 3 X ",
    "0 9 8 6 1 >.>.>.>.>.>.@ @ @ X   "};

/* XPM */
static const char *application[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 90 1",
    "  c #5171A9",
    ". c #5172A9",
    "X c #5373A9",
    "o c #5373AA",
    "O c #5475AB",
    "+ c #5475AC",
    "@ c #5676AD",
    "# c #5779AE",
    "$ c #587AB0",
    "% c #587BB1",
    "& c #5A7CB2",
    "* c #5C7EB4",
    "= c #5C7EB5",
    "- c #5E81B7",
    "; c #5F83B9",
    ": c #6085BA",
    "> c #6185BB",
    ", c #6387BD",
    "< c #6488BE",
    "1 c #668BC0",
    "2 c #688EC3",
    "3 c #6F90C1",
    "4 c #6C92C8",
    "5 c #6C94C9",
    "6 c #6E94CA",
    "7 c #6F96CB",
    "8 c #6F97CC",
    "9 c #7A9AC4",
    "0 c #7099CE",
    "q c #729ACF",
    "w c #739CD1",
    "e c #739DD2",
    "r c #759ED4",
    "t c #76A0D5",
    "y c #79A2D8",
    "u c #79A3D9",
    "i c #7AA4DA",
    "p c #7AA4DB",
    "a c #7AA6DC",
    "s c #7BA7DC",
    "d c #85ACDD",
    "f c #8DB1DD",
    "g c #92B9E8",
    "h c #DEE7F2",
    "j c #E4EAF3",
    "k c #E7EBF5",
    "l c #E8ECF6",
    "z c #EAEFF6",
    "x c #EAF0F7",
    "c c #EBF2F7",
    "v c #EDF3F7",
    "b c #ECF2F8",
    "n c #EFF3FA",
    "m c #EEF4F8",
    "M c #F0F5F9",
    "N c #F2F5FB",
    "B c #F1F6FB",
    "V c #F2F7FA",
    "C c #F2F7FB",
    "Z c #F3F7FB",
    "A c #F4F7FB",
    "S c #F4F8FB",
    "D c #F5F8FB",
    "F c #F5F9FB",
    "G c #F7F9FB",
    "H c #F6FAFB",
    "J c #F7FAFB",
    "K c #F6FBFB",
    "L c #F7FBFC",
    "P c #F7FCFC",
    "I c #F9FBFB",
    "U c #F8FBFC",
    "Y c #F9FBFC",
    "T c #F8FCFC",
    "R c #F9FCFC",
    "E c #F8FDFD",
    "W c #F9FDFD",
    "Q c #FAFCFC",
    "! c #FAFDFD",
    "~ c #FBFDFD",
    "^ c #FAFEFE",
    "/ c #FBFEFE",
    "( c #FCFDFD",
    ") c #FCFEFE",
    "_ c #FDFEFE",
    "` c #FCFFFF",
    "' c #FDFFFF",
    "] c #FEFFFF",
    "[ c #FFFFFF",
    "{ c None",
    /* pixels */
    "{{{{{{{{{{{{{{{{",
    "{faaputreqq759{{",
    "dggggggggggggg3{",
    "sssssssaassssa1{",
    "p[[[[[[[[[[[[[,{",
    "u[UUGASmvzjjh[:{",
    "u[!IUGGSBmbxl[-{",
    "t[[I!!GSGBAbb[={",
    "r[!![!!PGGSCC[&{",
    "e[[[!!!!PIHPC[${",
    "8[!![!!!!!!PG[+{",
    "5[[[[[[!![!!![o{",
    "4[[[[[[[[[[[[[ {",
    "o21,,;*&$#+Oooo{",
    "{{{{{{{{{{{{{{{{",
    "{{{{{{{{{{{{{{{{"};

/* XPM */
static const char *package[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 176 2",
    "   c #C38322",
    ".  c #C38423",
    "X  c #C48524",
    "o  c #C48625",
    "O  c #C58726",
    "+  c #C58928",
    "@  c #C68A28",
    "#  c #C78D2B",
    "$  c #C88E2C",
    "%  c #C88F2D",
    "&  c #C9902E",
    "*  c #C9922F",
    "=  c #CB9532",
    "-  c #CC9834",
    ";  c #C8943B",
    ":  c #CE9D39",
    ">  c #DE9F32",
    ",  c #D1A43F",
    "<  c #E2AA37",
    "1  c #E2A938",
    "2  c #E3AB3A",
    "3  c #E6B53A",
    "4  c #E6B43D",
    "5  c #E6B53F",
    "6  c #ECB638",
    "7  c #E9B53D",
    "8  c #F0BD3B",
    "9  c #C88E40",
    "0  c #CA904A",
    "q  c #D09753",
    "w  c #D2A540",
    "e  c #D3A842",
    "r  c #D4AA44",
    "t  c #D5AC45",
    "y  c #D5AD47",
    "u  c #D6B049",
    "i  c #D7B04A",
    "p  c #D7B24B",
    "a  c #D8B24B",
    "s  c #D8B44C",
    "d  c #D8B44D",
    "f  c #D9B54D",
    "g  c #D9B54E",
    "h  c #D9B74F",
    "j  c #D5A651",
    "k  c #DAAD50",
    "l  c #D7A45F",
    "z  c #DBB156",
    "x  c #E1A740",
    "c  c #E6B542",
    "v  c #E4B145",
    "b  c #E6B147",
    "n  c #E7BA41",
    "m  c #E9BD40",
    "M  c #E8BE43",
    "N  c #E9BD45",
    "B  c #E4B14C",
    "V  c #E9B44C",
    "C  c #E8BF48",
    "Z  c #E8BB4F",
    "A  c #F5BD40",
    "S  c #E5AF56",
    "D  c #DBB262",
    "F  c #DDB969",
    "G  c #D6B870",
    "H  c #DCBD77",
    "J  c #E6B66B",
    "K  c #E2B76F",
    "L  c #E5BF6F",
    "P  c #E4B374",
    "I  c #EAC443",
    "U  c #EAC146",
    "Y  c #ECC547",
    "T  c #EBC648",
    "R  c #EFC748",
    "E  c #F9C248",
    "W  c #F9C448",
    "Q  c #F1C156",
    "!  c #F5C969",
    "~  c #E1C072",
    "^  c #E0C07D",
    "/  c #E0C67E",
    "(  c #F5CF7F",
    ")  c #FFD577",
    "_  c #F5D078",
    "`  c #F5D07F",
    "'  c #FED678",
    "]  c #FED97C",
    "[  c #DBC389",
    "{  c #DEC995",
    "}  c #E5C482",
    "|  c #EBC182",
    " . c #ECC583",
    ".. c #EEC483",
    "X. c #EDC687",
    "o. c #ECCA84",
    "O. c #EBCC84",
    "+. c #E7CC88",
    "@. c #EECA88",
    "#. c #EFCA8A",
    "$. c #EBCD8F",
    "%. c #F1CF86",
    "&. c #F0CE8A",
    "*. c #FBDC84",
    "=. c #F1D28B",
    "-. c #F7D589",
    ";. c #F7D78B",
    ":. c #F0D08C",
    ">. c #FBDA8D",
    ",. c #FFDC8C",
    "<. c #E5CF92",
    "1. c #EDD292",
    "2. c #EAD59C",
    "3. c #F1D590",
    "4. c #F5D790",
    "5. c #F2D695",
    "6. c #FBDB92",
    "7. c #FEDF95",
    "8. c #F8DB9D",
    "9. c #FEE094",
    "0. c #FEE194",
    "q. c #FEE196",
    "w. c #FFE19B",
    "e. c #FFE39F",
    "r. c #EDD9A5",
    "t. c #F2DDAF",
    "y. c #EDDEBE",
    "u. c #FFE4A4",
    "i. c #FFE4A5",
    "p. c #FFE5A5",
    "a. c #F9E1AA",
    "s. c #FAE3AA",
    "d. c #FFE7AD",
    "f. c #FFE8A8",
    "g. c #FFE8AB",
    "h. c #F7E4B2",
    "j. c #FAE4B0",
    "k. c #FFEAB3",
    "l. c #FFE9B6",
    "z. c #FFEBB7",
    "x. c #F6E5BF",
    "c. c #FFEAB9",
    "v. c #FFEBBA",
    "b. c #FFEBBD",
    "n. c #FFEDBE",
    "m. c #FFEEC1",
    "M. c #FFEFC1",
    "N. c #FFEFC4",
    "B. c #FCEEC7",
    "V. c #FBEDCB",
    "C. c #FFEFC8",
    "Z. c #F9EBCD",
    "A. c #FAECCE",
    "S. c #FFF0C9",
    "D. c #FFF2CC",
    "F. c #FFF2CE",
    "G. c #FFF4CC",
    "H. c #F5EBD2",
    "J. c #F7EED1",
    "K. c #FFF3D4",
    "L. c #FFF3D5",
    "P. c #FFF4D7",
    "I. c #FFF5D9",
    "U. c #FFF4DA",
    "Y. c #FFF6DB",
    "T. c #FFF6DD",
    "R. c #FCF6E2",
    "E. c #FDF6E2",
    "W. c #FEF6E3",
    "Q. c #FEF8E1",
    "!. c #FDF8E2",
    "~. c #FCF8E6",
    "^. c #FEFBE7",
    "/. c #FFFEF0",
    "(. c #FFFFF6",
    "). c None",
    /* pixels */
    ").).).).).).).a p ).).).).).).).",
    ").).).).).g p 2.+.r r ).).).).).",
    ").).).).g <.~.R.t.j.~ w ).).).).",
    ").).g / J.(./.V.k ;.a.5.D : ).).",
    "g g r.H.y.{ [ G F 4.( 8.a.o.j = ",
    "g Q.A.1.O.L z ; A.I.c.7.' p.*.* ",
    "p R.K.s.&.` _ B j.l.w.' A 7 3.% ",
    "p R.I.K.b.-.! V >.,.W 6 C Z :.# ",
    "y R.P.D.N.c.6.Q E 8 R N c b #.+ ",
    "r R.K.D.m.k.d.] R I M 4 1 x  .O ",
    "e ~.T.M.l.g.u.q.T m 4 1 > J  .o ",
    ", H x.T.m.p.e.q.U 3 < S  .P 0   ",
    ").).: ^ B.D.p.q.n v #.| q . ).).",
    ").).).- = } G.N.:.&.l o o ).).).",
    ").).).).).* % $.K 9 o ).).).).).",
    ").).).).).).).+ O ).).).).).).)."};

/* XPM */
static const char *plugin[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 123 2",
    "   c #3A8A36",
    ".  c #3D8C39",
    "X  c #3D8D39",
    "o  c #3F8E3A",
    "O  c #408F3B",
    "+  c #41903C",
    "@  c #42913D",
    "#  c #42923E",
    "$  c #43923E",
    "%  c #459440",
    "&  c #469641",
    "*  c #479642",
    "=  c #4A9945",
    "-  c #4D9C48",
    ";  c #4E9D48",
    ":  c #4F9E49",
    ">  c #51A04B",
    ",  c #52A14C",
    "<  c #55A44F",
    "1  c #59B54F",
    "2  c #59A752",
    "3  c #5AA953",
    "4  c #5DAB56",
    "5  c #5EAD57",
    "6  c #5BB651",
    "7  c #5DB752",
    "8  c #5FB853",
    "9  c #61AF5A",
    "0  c #62AC5C",
    "q  c #63AD5D",
    "w  c #60B955",
    "e  c #61B956",
    "r  c #61BA56",
    "t  c #63B15B",
    "y  c #65B45E",
    "u  c #67B55F",
    "i  c #63BA58",
    "p  c #64BB58",
    "a  c #64BB59",
    "s  c #66BB5A",
    "d  c #66BB5D",
    "f  c #68BC5B",
    "g  c #69BC5D",
    "h  c #69BD5D",
    "j  c #6ABD5E",
    "k  c #6CBE5F",
    "l  c #6CB565",
    "z  c #6DB566",
    "x  c #6AB862",
    "c  c #6BB963",
    "v  c #6BBD62",
    "b  c #6DBF60",
    "n  c #6EBC65",
    "m  c #6FBF65",
    "M  c #6FBD66",
    "N  c #6FC062",
    "B  c #71C164",
    "V  c #72C165",
    "C  c #73C265",
    "Z  c #71C066",
    "A  c #73C267",
    "S  c #72C069",
    "D  c #72C169",
    "F  c #77C369",
    "G  c #76C46D",
    "H  c #77C46D",
    "J  c #78C66F",
    "K  c #7AC072",
    "L  c #7AC770",
    "P  c #7CC376",
    "I  c #7BC971",
    "U  c #7CC972",
    "Y  c #7DCA73",
    "T  c #7DCB73",
    "R  c #7ECB74",
    "E  c #80CD75",
    "W  c #80CE76",
    "Q  c #81CE76",
    "!  c #81C67A",
    "~  c #81C67B",
    "^  c #83C77C",
    "/  c #87CB79",
    "(  c #82CD78",
    ")  c #82CF78",
    "_  c #85C97C",
    "`  c #84C87E",
    "'  c #85C87E",
    "]  c #83D079",
    "[  c #87CA80",
    "{  c #88CA80",
    "}  c #88CA81",
    "|  c #89CA82",
    " . c #89CA83",
    ".. c #8ACB83",
    "X. c #8BCC83",
    "o. c #8CCC84",
    "O. c #8DCD85",
    "+. c #8ECD86",
    "@. c #90CF88",
    "#. c #91CF88",
    "$. c #92CF8A",
    "%. c #93CF8B",
    "&. c #94CF8A",
    "*. c #94CF8B",
    "=. c #95CF8B",
    "-. c #95D08C",
    ";. c #96D18D",
    ":. c #97D28D",
    ">. c #98D18F",
    ",. c #99D290",
    "<. c #9CD493",
    "1. c #9DD593",
    "2. c #9ED595",
    "3. c #A1D796",
    "4. c #A1D797",
    "5. c #A2D897",
    "6. c #A2D798",
    "7. c #A2D898",
    "8. c #A3D899",
    "9. c #A4D899",
    "0. c #A6D99B",
    "q. c #A7D99C",
    "w. c None",
    /* pixels */
    "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.",
    "w.w.w.w.w.( W T L w.w.w.w.w.w.w.",
    "w.w.w.w.w.( q.5.H w.w.w.w.w.w.w.",
    "w.w.w.w.w.T 5.>.S w.w.w.w.w.w.w.",
    "w.] W W T H 4.1.n x u t w.w.w.w.",
    "w.W 9.9.4.4.1.<.>.-.*.5 w.w.w.w.",
    "w.T 8.4./ F C B V V *.3 w.w.w.w.",
    "w.L H _ <.V m k j s @.z , ; = w.",
    "w.w.w.M ,.k j s a r n X. .[ & w.",
    "w.w.w.x ;.j s s 8 7 v [ _ [ # w.",
    "w.n x K @.s r 7 6 6 _ 0 % # o w.",
    "w.x *.-.S O.O.X. .d [ % w.w.w.w.",
    "w.y @.r O.z > ; q ~ ~ o w.w.w.w.",
    "w.t O.o. ., w.w.& ~ P o w.w.w.w.",
    "w.4 2 < , - w.w.$ O o   w.w.w.w.",
    "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w."};

/* XPM */
static const char *cd_img[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 131 2",
    "   c #5887B8",
    ".  c #A5BFD9",
    "X  c #94BCE7",
    "o  c #96BEE7",
    "O  c #96BCE8",
    "+  c #97BEE9",
    "@  c #97BDEC",
    "#  c #99BFE9",
    "$  c #99BFEB",
    "%  c #AAC3DC",
    "&  c #AAC3DD",
    "*  c #ACC4DD",
    "=  c #97C0E9",
    "-  c #99C0E9",
    ";  c #9AC1E9",
    ":  c #9BC1E9",
    ">  c #9BC1EB",
    ",  c #A1C4EA",
    "<  c #A3C7EC",
    "1  c #A0C6EE",
    "2  c #A4C9ED",
    "3  c #A4C9EF",
    "4  c #B9CDE1",
    "5  c #BACEE2",
    "6  c #BBCEE2",
    "7  c #A3C1F0",
    "8  c #A4CAF2",
    "9  c #A5CBF3",
    "0  c #AECAF2",
    "q  c #A9CCF0",
    "w  c #ABCCF0",
    "e  c #ABCDF1",
    "r  c #A8CDF2",
    "t  c #A8CCF3",
    "y  c #A9CDF3",
    "u  c #ABCFF5",
    "i  c #A8CDF6",
    "p  c #A9CEF6",
    "a  c #B2CEF1",
    "s  c #B6CDF7",
    "d  c #ADD2F2",
    "f  c #AED1F4",
    "g  c #ACD0F6",
    "h  c #ACD1F7",
    "j  c #B2D2F2",
    "k  c #B6D2F1",
    "l  c #B2D2F4",
    "z  c #B3D4F6",
    "x  c #B8D6F5",
    "c  c #BBD8F6",
    "v  c #B2D3F9",
    "b  c #B3D5F9",
    "n  c #B2D6FB",
    "m  c #BBDBFC",
    "M  c #BADBFE",
    "N  c #BBDCFC",
    "B  c #C7DAF3",
    "V  c #C6DEF7",
    "C  c #C9DDF3",
    "Z  c #CADEF3",
    "A  c #CCDDF0",
    "S  c #CFDFF1",
    "D  c #C3DDF8",
    "F  c #C4DDF8",
    "G  c #C7DFFB",
    "H  c #D0E0EF",
    "J  c #CEE0F1",
    "K  c #C2E1FF",
    "L  c #C3E1FF",
    "P  c #CAE1FA",
    "I  c #CDE7FF",
    "U  c #CFE7FF",
    "Y  c #C8EDF9",
    "T  c #D1E1F0",
    "R  c #D1E1F1",
    "E  c #D4E2F1",
    "W  c #D3E3F6",
    "Q  c #D2E4F6",
    "!  c #D3E4F6",
    "~  c #D5E4F5",
    "^  c #D4E6F8",
    "/  c #D6E7F9",
    "(  c #D1E5FC",
    ")  c #D3E4FF",
    "_  c #D7E9FA",
    "`  c #D1E9FF",
    "'  c #D1EBFF",
    "]  c #D9E8F8",
    "[  c #D9EAF8",
    "{  c #D9EAFA",
    "}  c #DFECF9",
    "|  c #DBE8FF",
    " . c #DAECFE",
    ".. c #DAECFF",
    "X. c #D8EFFF",
    "o. c #DAEEFF",
    "O. c #D1F0FD",
    "+. c #DDF0FF",
    "@. c #DDF2FF",
    "#. c #DCF4FF",
    "$. c #E4EDF4",
    "%. c #E1EDFA",
    "&. c #E4F1F8",
    "*. c #E5F3FB",
    "=. c #E4F1FF",
    "-. c #E4F2FE",
    ";. c #E2F6FF",
    ":. c #E5F4FF",
    ">. c #E8F7FF",
    ",. c #E9F7FF",
    "<. c #E9F9FF",
    "1. c #EBF8FF",
    "2. c #EDF8FF",
    "3. c #EFFCFF",
    "4. c #F0FAFF",
    "5. c #F0FDFF",
    "6. c #F1FDFF",
    "7. c #F2FCFF",
    "8. c #F3FCFF",
    "9. c #F3FDFF",
    "0. c #F1FEFF",
    "q. c #F3FFFF",
    "w. c #F7FFFF",
    "e. c #F9FEFE",
    "r. c #F9FFFF",
    "t. c #FAFEFE",
    "y. c #FCFDFE",
    "u. c #FDFFFF",
    "i. c #FEFFFF",
    "p. c #FFFFFF",
    "a. c None",
    /* pixels */
    "a.a.a.a.a.            a.a.a.a.a.",
    "a.a.a.    5 E } *.$.5     a.a.a.",
    "a.a.  . p.%.0 f Y w.p.t..   a.a.",
    "a.  . 4.p.8.7 1 O.p.3.8.p.%   a.",
    "a.  %.2  .p.s @ #.w.>.8.w.t.  a.",
    "  5 k > # )  .B &.3.>.8.3.4.5   ",
    "  T , - + a &     & 8.:.o.( T   ",
    "  ~ # - - Z   a.a.  ] j w w !   ",
    "  ~ # + X Z   a.a.  W w 8 2 !   ",
    "  H X X w o.*     & D l z x S   ",
    "  5 V ' ;.+.+.] ^ G u 8 t D 5   ",
    "a.  t.1.O.I K N b g u 8 u ]   a.",
    "a.  . 3.' K M b g u 8 r P .   a.",
    "a.a.  . -.U m v g g c _ .   a.a.",
    "a.a.a.    5 J ^ ^ S 5     a.a.a.",
    "a.a.a.a.a.            a.a.a.a.a."};

/* XPM */
static const char *arrow_redo[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 110 2",
    "   c #215F1E",
    ".  c #236220",
    "X  c #246220",
    "o  c #266522",
    "O  c #276623",
    "+  c #296925",
    "@  c #2A6B26",
    "#  c #2C6C27",
    "$  c #2D6E29",
    "%  c #2F702A",
    "&  c #31732C",
    "*  c #32752D",
    "=  c #34772F",
    "-  c #367930",
    ";  c #387B32",
    ":  c #397E33",
    ">  c #3B8035",
    ",  c #3E8337",
    "<  c #3E8438",
    "1  c #3F8538",
    "2  c #41883B",
    "3  c #438A3C",
    "4  c #458D3E",
    "5  c #478F40",
    "6  c #4A9242",
    "7  c #4B9443",
    "8  c #4C9444",
    "9  c #4E9746",
    "0  c #509947",
    "q  c #519C49",
    "w  c #549F4B",
    "e  c #55A04C",
    "r  c #57A34E",
    "t  c #58A34F",
    "y  c #58A44F",
    "u  c #5AA651",
    "i  c #5BA751",
    "p  c #5EAC54",
    "a  c #60A259",
    "s  c #60A35A",
    "d  c #61A35A",
    "f  c #62A35B",
    "g  c #64A65D",
    "h  c #67A85F",
    "j  c #62B057",
    "k  c #62B158",
    "l  c #65B45A",
    "z  c #66B55B",
    "x  c #68B85D",
    "c  c #6ABA5F",
    "v  c #6ABB5F",
    "b  c #6FAF66",
    "n  c #70B268",
    "m  c #71B369",
    "M  c #70B16A",
    "N  c #76B56E",
    "B  c #73B96D",
    "V  c #76B86D",
    "C  c #74BB70",
    "Z  c #75BB70",
    "A  c #77BC71",
    "S  c #7AB972",
    "D  c #78BD72",
    "F  c #79BD74",
    "G  c #7ABD74",
    "H  c #7CBC75",
    "J  c #7FBC76",
    "K  c #7CBE76",
    "L  c #7EBF77",
    "P  c #7DBF78",
    "I  c #7FC178",
    "U  c #80C179",
    "Y  c #84C57A",
    "T  c #85C57B",
    "R  c #82C27C",
    "E  c #85C17E",
    "W  c #87C27F",
    "Q  c #86C47F",
    "!  c #8BC785",
    "~  c #8CC685",
    "^  c #90CA87",
    "/  c #90CA89",
    "(  c #91CA8A",
    ")  c #93CB8B",
    "_  c #92CC88",
    "`  c #93CC8A",
    "'  c #94CC8D",
    "]  c #95CC8D",
    "[  c #96CE8D",
    "{  c #98CE90",
    "}  c #99CE90",
    "|  c #99CF91",
    " . c #9ACE91",
    ".. c #9ACF92",
    "X. c #9BCF93",
    "o. c #9DD193",
    "O. c #9DD094",
    "+. c #9CD194",
    "@. c #9ED195",
    "#. c #9ED196",
    "$. c #9FD297",
    "%. c #A0D396",
    "&. c #A1D398",
    "*. c #A1D399",
    "=. c #A2D499",
    "-. c #A3D49B",
    ";. c #A5D59C",
    ":. c #A7D69E",
    ">. c #A9D7A0",
    ",. c None",
    /* pixels */
    ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.",
    ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.",
    ",.,.,.,.,.,.,.,.,.,.,.i w ,.,.,.",
    ",.,.,.,.,.x z j p i e m b 8 ,.,.",
    ",.,.,.c Y [ *.:.&.&.X.} [ b 1 ,.",
    ",.,.c ` >.%.-.*.#.X.} [ / f 1 ,.",
    ",.,.Y :.:.} V e q 8 6 g s 1 ,.,.",
    ",.z ` o.} y e ,.,.,.,.2 , ,.,.,.",
    ",.k #.#.J w ,.,.,.,.,.,.,.,.,.,.",
    ",.p [ } S q ,.,.,.,.,.,.,.,.,.,.",
    ",.i W ^ ~ 8 5 ,.,.,.,.,.,.,.,.,.",
    ",.,.M ) / W u 2 , - - & $ @ ,.,.",
    ",.,.8 N ! I Q R U P G A Z O ,.,.",
    ",.,.,.5 s M K K K G A C B X ,.,.",
    ",.,.,.,.,.: - * % $ + O .   ,.,.",
    ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,."};

/* XPM */
static const char *arrow_rotate_clockwise[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 97 2",
    "   c #31732C",
    ".  c #33762E",
    "X  c #367930",
    "o  c #377B31",
    "O  c #3A7E34",
    "+  c #3B7F35",
    "@  c #3E8337",
    "#  c #3E8438",
    "$  c #43893C",
    "%  c #458C3E",
    "&  c #468D3F",
    "*  c #489040",
    "=  c #499141",
    "-  c #499142",
    ";  c #4E9746",
    ":  c #4E9846",
    ">  c #509947",
    ",  c #52954D",
    "<  c #54964E",
    "1  c #509A48",
    "2  c #529C4A",
    "3  c #539D4A",
    "4  c #539E4B",
    "5  c #549F4B",
    "6  c #5B9D55",
    "7  c #5A9E55",
    "8  c #55A04C",
    "9  c #56A14D",
    "0  c #58A34F",
    "q  c #59A650",
    "w  c #5EA157",
    "e  c #5CA953",
    "r  c #5DAA53",
    "t  c #60AE56",
    "y  c #61A35A",
    "u  c #66A95F",
    "i  c #63B158",
    "p  c #63B259",
    "a  c #66B55B",
    "s  c #66B65C",
    "d  c #69B95E",
    "f  c #6ABA5F",
    "g  c #68AA60",
    "h  c #69AB61",
    "j  c #6AAB63",
    "k  c #6AAD63",
    "l  c #6CAE63",
    "z  c #6FAF67",
    "x  c #6CBC60",
    "c  c #6DBF62",
    "v  c #6EBF62",
    "b  c #74B56D",
    "n  c #77B771",
    "m  c #79B871",
    "M  c #78BA70",
    "N  c #7EBC75",
    "B  c #7CBF75",
    "V  c #7EC177",
    "C  c #81C077",
    "Z  c #82C27B",
    "A  c #85C77B",
    "S  c #82C27C",
    "D  c #84C17C",
    "F  c #84C07D",
    "G  c #85C37E",
    "H  c #85C47E",
    "J  c #87C47F",
    "K  c #87C87C",
    "L  c #87C581",
    "P  c #88C582",
    "I  c #89C682",
    "U  c #8BC683",
    "Y  c #8AC783",
    "T  c #8BC785",
    "R  c #8CCA82",
    "E  c #8CC885",
    "W  c #8FC987",
    "Q  c #8FC988",
    "!  c #90C989",
    "~  c #97CC8E",
    "^  c #98CE90",
    "/  c #99CE90",
    "(  c #9BCF93",
    ")  c #9BD092",
    "_  c #9DD194",
    "`  c #9ED196",
    "'  c #A0D197",
    "]  c #A1D396",
    "[  c #A2D499",
    "{  c #A4D49B",
    "}  c #A6D59C",
    "|  c #A6D59D",
    " . c #A7D69E",
    ".. c #A9D7A0",
    "X. c #AAD8A0",
    "o. c #ABD8A1",
    "O. c None",
    /* pixels */
    "O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.",
    "O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.",
    "O.O.O.O.O.O.x d a i O.O.O.O.O.O.",
    "O.O.O.O.v K ] X. ./ M 0 O.O.O.O.",
    "O.O.O.c R o.[ } { ) ` m > O.O.O.",
    "O.O.O.A .. .' C N ~ ( ^ h O.O.O.",
    "O.O.f _ | ( r q 9 2 ! E F $ O.O.",
    "O.O.s p t e O.O.O.; z Q E # O.O.",
    "O.O.O.O.O.O.8 O.O.- j Y P O O.O.",
    "O.O.O.O.O.5 1 O.= % D V n X O.O.",
    "O.O.O.O.4 l g * y L H S < O.O.O.",
    "O.O.O.3 k W T I J B Z 6   O.O.O.",
    "O.O.O.: u U L G S b ,   O.O.O.O.",
    "O.O.O.O.& w 7 + o . O.O.O.O.O.O.",
    "O.O.O.O.O.@ O O.O.O.O.O.O.O.O.O.",
    "O.O.O.O.O.O.X O.O.O.O.O.O.O.O.O."};

/* XPM */
static const char *arrow_switch[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 124 2",
    "   c #174414",
    ".  c #174515",
    "X  c #184515",
    "o  c #184616",
    "O  c #1A4917",
    "+  c #1C4B19",
    "@  c #23561F",
    "#  c #255821",
    "$  c #295E24",
    "%  c #2C6227",
    "&  c #2D6328",
    "*  c #2F672A",
    "=  c #30682A",
    "-  c #33762E",
    ";  c #34772E",
    ":  c #35782F",
    ">  c #3A6D36",
    ",  c #367230",
    "<  c #377B31",
    "1  c #3C7936",
    "2  c #3D7A36",
    "3  c #3A7E34",
    "4  c #4B7D47",
    "5  c #4B7E48",
    "6  c #3B8035",
    "7  c #408539",
    "8  c #41863A",
    "9  c #43863B",
    "0  c #438A3C",
    "q  c #448B3D",
    "w  c #4C8E43",
    "e  c #4F824B",
    "r  c #538B4E",
    "t  c #548E4D",
    "y  c #499141",
    "u  c #4D9645",
    "i  c #529949",
    "p  c #509A48",
    "a  c #539B4A",
    "s  c #519C49",
    "d  c #529D4A",
    "f  c #549F4B",
    "g  c #568A52",
    "h  c #5A8E54",
    "j  c #589951",
    "k  c #599A53",
    "l  c #599D50",
    "z  c #5B9E53",
    "x  c #5B9D55",
    "c  c #5D9C55",
    "v  c #5E9F57",
    "b  c #62985D",
    "n  c #55A04C",
    "m  c #57A24E",
    "M  c #57A34E",
    "N  c #58A44F",
    "B  c #59A550",
    "V  c #5FA755",
    "C  c #5DA952",
    "Z  c #5CA953",
    "A  c #5DAA54",
    "S  c #5FAB54",
    "D  c #60AD55",
    "F  c #62AF56",
    "G  c #60A658",
    "H  c #67A85F",
    "J  c #63B057",
    "K  c #64B258",
    "L  c #65B459",
    "P  c #66B55A",
    "I  c #679C63",
    "U  c #69AA63",
    "Y  c #6AAD61",
    "T  c #6BAD63",
    "R  c #6EAF65",
    "E  c #73B16C",
    "W  c #77B471",
    "Q  c #7BB373",
    "!  c #7BB873",
    "~  c #81B679",
    "^  c #83B67C",
    "/  c #84B77D",
    "(  c #84BC7B",
    ")  c #8BBE85",
    "_  c #87C480",
    "`  c #8AC683",
    "'  c #8BC784",
    "]  c #8DC886",
    "[  c #8FC987",
    "{  c #91C989",
    "}  c #90CA89",
    "|  c #92CB8B",
    " . c #92CA8E",
    ".. c #94CB8C",
    "X. c #95CC8E",
    "o. c #96CD8E",
    "O. c #94CB90",
    "+. c #96CC91",
    "@. c #97CC92",
    "#. c #99CB91",
    "$. c #99CF90",
    "%. c #98CC93",
    "&. c #99CE94",
    "*. c #9BCE96",
    "=. c #9DCF98",
    "-. c #9ECF98",
    ";. c #A3CF9A",
    ":. c #A2D29C",
    ">. c #A7D3A0",
    ",. c #A6D4A0",
    "<. c #A8D4A2",
    "1. c #AFD7A7",
    "2. c #B1DAAA",
    "3. c #B4DCAD",
    "4. c #BADFB3",
    "5. c #BCE0B4",
    "6. c #BEE1B6",
    "7. c #BEE1B7",
    "8. c #BFE2B7",
    "9. c #C0E2B8",
    "0. c #C0E3B9",
    "q. c #C1E3B9",
    "w. c #C2E3BA",
    "e. c None",
    /* pixels */
    "e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.",
    "e.e.e.e.e.e.e.e.e.e.e.m e.e.e.e.",
    "e.e.e.e.e.e.e.e.e.e.e.s u e.e.e.",
    "P P P K F S e.A B n G ! H 0 e.e.",
    "P w.q.9.7.#.R Y { $.X.| [ v 3 e.",
    "L 0.8.6.5.4.;.l o...} ] ` k : e.",
    "J D C V ( 1.3.c E z 8 x j ; e.e.",
    "e.e.e.e.i Q 2.~ 9 e.e., - e.e.e.",
    "e.e.e.e.p w >.<.2 e.e.= % e.e.e.",
    "Z N f a T c ^ ,./ r * h g @ e.e.",
    "M X.| [ ' W t :.-.=.*.%.+.e + e.",
    "d } ] ` _ U 1 b ) &.@.O. .5 o e.",
    "u y q 7 6 < e.& $ # > I 4 X e.e.",
    "e.e.e.e.e.e.e.e.e.e.e.O . e.e.e.",
    "e.e.e.e.e.e.e.e.e.e.e.  e.e.e.e.",
    "e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e."};

/* XPM */
static const char *box[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 163 2",
    "   c #774C15",
    ".  c #7A4C12",
    "X  c #7E4E12",
    "o  c #784D15",
    "O  c #794D16",
    "+  c #794E16",
    "@  c #7A4E16",
    "#  c #7B4F16",
    "$  c #7C5017",
    "%  c #7D5017",
    "&  c #7E5117",
    "*  c #7F5218",
    "=  c #825114",
    "-  c #875414",
    ";  c #8B5615",
    ":  c #8E5915",
    ">  c #805318",
    ",  c #815318",
    "<  c #825419",
    "1  c #835419",
    "2  c #845519",
    "3  c #85551A",
    "4  c #86561A",
    "5  c #87571A",
    "6  c #88581B",
    "7  c #89591B",
    "8  c #8A591D",
    "9  c #8B5A1C",
    "0  c #8C5B1C",
    "q  c #8D5B1C",
    "w  c #8E5C1D",
    "e  c #8F5C1D",
    "r  c #8F5D1D",
    "t  c #8F5D1E",
    "y  c #925B16",
    "u  c #965C17",
    "i  c #995E17",
    "p  c #905D1D",
    "a  c #915E1E",
    "s  c #915F1E",
    "d  c #925F1E",
    "f  c #9B6117",
    "g  c #94601F",
    "h  c #95601F",
    "j  c #95611F",
    "k  c #96611F",
    "l  c #96621F",
    "z  c #99621F",
    "x  c #976220",
    "c  c #9C6420",
    "v  c #9F6520",
    "b  c #8C6839",
    "n  c #946B38",
    "m  c #986D38",
    "M  c #98703F",
    "N  c #A16820",
    "B  c #A46E29",
    "V  c #A66F2B",
    "C  c #A87A3F",
    "Z  c #C86530",
    "A  c #C86731",
    "S  c #C96832",
    "D  c #C96932",
    "F  c #CA6B33",
    "G  c #CA6D34",
    "H  c #CB6E34",
    "J  c #CB6E35",
    "K  c #CC7036",
    "L  c #CC7137",
    "P  c #CD7237",
    "I  c #CD7338",
    "U  c #CE7438",
    "Y  c #CE763A",
    "T  c #CF773B",
    "R  c #D07A3C",
    "E  c #D07B3C",
    "W  c #D17C3D",
    "Q  c #D17D3E",
    "!  c #D37F3F",
    "~  c #AA7C41",
    "^  c #A6845B",
    "/  c #AB885A",
    "(  c #B08C5F",
    ")  c #B38E5F",
    "_  c #B58F60",
    "`  c #B08E67",
    "'  c #B79060",
    "]  c #B99160",
    "[  c #BB9260",
    "{  c #BC9360",
    "}  c #BC9361",
    "|  c #BC9461",
    " . c #BE9664",
    ".. c #D48040",
    "X. c #D48240",
    "o. c #D58341",
    "O. c #D58542",
    "+. c #D68743",
    "@. c #D78944",
    "#. c #D88A44",
    "$. c #D88C47",
    "%. c #D98D47",
    "&. c #DA8F48",
    "*. c #DA9149",
    "=. c #DB924A",
    "-. c #DC944B",
    ";. c #DC964C",
    ":. c #DD984D",
    ">. c #DE994D",
    ",. c #DE9B4F",
    "<. c #DC9451",
    "1. c #DF9D55",
    "2. c #E09C4F",
    "3. c #E19E50",
    "4. c #E2A051",
    "5. c #E2A252",
    "6. c #E3A354",
    "7. c #E3A554",
    "8. c #E4A655",
    "9. c #E5A957",
    "0. c #E3A459",
    "q. c #E6AA58",
    "w. c #E7AE59",
    "e. c #E6AC5E",
    "r. c #E9B25B",
    "t. c #DA9874",
    "y. c #DA9875",
    "u. c #DA9975",
    "i. c #DB9B76",
    "p. c #DC9E77",
    "a. c #DD9F78",
    "s. c #E19E62",
    "d. c #DDA079",
    "f. c #DEA27A",
    "g. c #DEA37B",
    "h. c #DFA67C",
    "j. c #D9B177",
    "k. c #E3A366",
    "l. c #E5A769",
    "z. c #E6AB6E",
    "x. c #E9B362",
    "c. c #EBB865",
    "v. c #E0A87E",
    "b. c #E2AB7F",
    "n. c #E0AD7E",
    "m. c #E8B071",
    "M. c #EAB475",
    "N. c #EBB87A",
    "B. c #EEBC7D",
    "V. c #E3AD80",
    "C. c #E4AF81",
    "Z. c #E3B280",
    "A. c #E5B783",
    "S. c #E6BD85",
    "D. c #EFBF80",
    "F. c #E8C188",
    "G. c #EAC68B",
    "H. c #EDC88D",
    "J. c #EECC8F",
    "K. c #F1C383",
    "L. c #F2C587",
    "P. c #F4CC8F",
    "I. c None",
    /* pixels */
    "I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
    "I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.",
    "I.I.x l k j g d a p e q 0 I.I.I.",
    "I.x C { | } [ ] ' _ ) ( / m 5 I.",
    "x ~  .V N v c z h s t 8 M ^ n 2 ",
    "l j.B f i u y : ; - = X . b ` < ",
    "j J.P.L.K.D.B.N.M.m.z.l.k.s.V., ",
    "g H.c.r.w.9.7.4.,.;.*.$.+.X.v.* ",
    "d G.x.q.8.5.2.:.=.%.@.o.! E g.& ",
    "a F.e.6.3.>.-.&.#.O...W T I a.$ ",
    "r S.0.,.;.*.$.+.X.Q R U L H i.# ",
    "w A.1.=.%.@.o.! E Y P J F S y.@ ",
    "0 Z.<.#.O...W T I K G D A Z t.O ",
    "9 n.C.b.v.h.f.d.p.i.u.t.t.t.t.o ",
    "7 6 4 3 1 < > * & % # @ + O o   ",
    "I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I."};

/* XPM */
static const char *brick[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 72 1",
    "  c gray58",
    ". c #959595",
    "X c gray59",
    "o c #979797",
    "O c #989898",
    "+ c gray60",
    "@ c #9A9A9A",
    "# c #9B9B9B",
    "$ c #9D9D9D",
    "% c gray62",
    "& c gray63",
    "* c #A2A2A2",
    "= c gray64",
    "- c #A5A5A5",
    "; c gray65",
    ": c #A9A9A9",
    "> c #AAAAAA",
    ", c gray67",
    "< c #ACACAC",
    "1 c #AEAEAE",
    "2 c #B1B1B1",
    "3 c gray70",
    "4 c gray71",
    "5 c #BBBBBB",
    "6 c gray74",
    "7 c gray",
    "8 c #C0C0C0",
    "9 c #C1C1C1",
    "0 c gray76",
    "q c #C3C3C3",
    "w c gray77",
    "e c #C5C5C5",
    "r c gray78",
    "t c gray79",
    "y c #CBCBCB",
    "u c gray80",
    "i c #CDCDCD",
    "p c #CECECE",
    "a c gray81",
    "s c gray82",
    "d c #D2D2D2",
    "f c LightGray",
    "g c #D5D5D5",
    "h c gray84",
    "j c #D7D7D7",
    "k c #D8D8D8",
    "l c #DADADA",
    "z c gray86",
    "x c #DDDDDD",
    "c c gray87",
    "v c #DFDFDF",
    "b c gray88",
    "n c #E1E1E1",
    "m c gray89",
    "M c #E4E4E4",
    "N c #E7E7E7",
    "B c gray91",
    "V c #E9E9E9",
    "C c #EAEAEA",
    "Z c gray92",
    "A c #ECECEC",
    "S c #EEEEEE",
    "D c gray94",
    "F c #F1F1F1",
    "G c gray95",
    "H c #F3F3F3",
    "J c gray96",
    "K c #FBFBFB",
    "L c gray99",
    "P c #FDFDFD",
    "I c gray100",
    "U c None",
    /* pixels */
    "UUUUU03**30UUUUU",
    "UUUUU:IIII:UUUUU",
    "U03**2hPLf2**30U",
    "U:IIIb<ss,bIII:U",
    "11gPPr4==4rLKd1$",
    "<kips<IIII<su97#",
    ",HVxc0lPPlqj55a@",
    ">HFSnryssu2588p+",
    ":HDACMlkw570q8yO",
    ";JGNMvzh800067t.",
    "-7mFNxlh7995y8; ",
    "UU&9BZch55yr, UU",
    "UUU%$eZBui3. UUU",
    "UUUUU#@i6&.UUUUU",
    "UUUUUUUoXUUUUUUU",
    "UUUUUUUUUUUUUUUU"};

/* XPM */
static const char *database[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 82 1",
    "  c #898989",
    ". c gray54",
    "X c #8B8B8B",
    "o c #8D8D8D",
    "O c #909090",
    "+ c #959595",
    "@ c gray59",
    "# c #9B9B9B",
    "$ c gray62",
    "% c #9F9F9F",
    "& c #A0A0A0",
    "* c gray63",
    "= c gray64",
    "- c #A5A5A5",
    "; c #A7A7A7",
    ": c #A9A9A9",
    "> c gray67",
    ", c #ACACAC",
    "< c gray68",
    "1 c #AEAEAE",
    "2 c gray69",
    "3 c #B2B2B2",
    "4 c gray70",
    "5 c #B4B4B4",
    "6 c gray71",
    "7 c #B6B6B6",
    "8 c #B7B7B7",
    "9 c gray72",
    "0 c #B9B9B9",
    "q c gray73",
    "w c #BBBBBB",
    "e c #BCBCBC",
    "r c gray74",
    "t c gray75",
    "y c #C0C0C0",
    "u c gray76",
    "i c #C3C3C3",
    "p c gray77",
    "a c gray79",
    "s c #CDCDCD",
    "d c #CECECE",
    "f c gray81",
    "g c #D0D0D0",
    "h c gray82",
    "j c #D2D2D2",
    "k c gray83",
    "l c #D5D5D5",
    "z c gray84",
    "x c #D8D8D8",
    "c c gray85",
    "v c gray86",
    "b c gainsboro",
    "n c #DDDDDD",
    "m c gray87",
    "M c gray88",
    "N c #E1E1E1",
    "B c #E2E2E2",
    "V c gray89",
    "C c gray90",
    "Z c #E6E6E6",
    "A c #E7E7E7",
    "S c gray91",
    "D c #EAEAEA",
    "F c gray92",
    "G c gray93",
    "H c #EEEEEE",
    "J c #EFEFEF",
    "K c gray94",
    "L c gray95",
    "P c #F3F3F3",
    "I c #F4F4F4",
    "U c gray96",
    "Y c #F6F6F6",
    "T c gray97",
    "R c #F8F8F8",
    "E c gray98",
    "W c #FBFBFB",
    "Q c gray99",
    "! c #FDFDFD",
    "~ c #FEFEFE",
    "^ c gray100",
    "/ c None",
    /* pixels */
    "////////////////",
    "/////q98754/////",
    "///wgSP!QGMu<///",
    "//qN~^^^^^^Wf://",
    "//0R~^^^^^^WD;//",
    "//8TAJYWEKmiZ-//",
    "//6YFmzlhieyC=//",
    "//5UHZBZNsuuV&//",
    "//3IDNnVmartB$//",
    "//2PAncMvp9wN#//",
    "//1LBxlbxy48M@//",
    "//,Kmkjvzt24mO//",
    "//:mPvjvzyaZpX//",
    "///-dGIUIJBq.///",
    "////*%*>;+o ////",
    "////////////////"};

/* XPM */
static const char *signal_gtkwave[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 19 1",
    "  c #070905",
    ". c #18270A",
    "X c #243910",
    "o c #325014",
    "O c #3E6617",
    "+ c #45701A",
    "@ c #446822",
    "# c #52861F",
    "$ c #599321",
    "% c #609D24",
    "& c #69AC27",
    "* c #74905A",
    "= c #7DA05B",
    "- c #7C9861",
    "; c #82A65E",
    ": c #96BA73",
    "> c #9DC279",
    ", c #A2C77D",
    "< c #AAD184",
    /* pixels */
    "<::,::<::<>><>><",
    "-.XX..@oo@X XX.-",
    "* .. o&$$&O .. *",
    "*.oX.$+..@#.XX.-",
    "=oooo&OooO&oooo;",
    "* ...#X  X#... *",
    "* . oOX  .Oo.. *",
    "*Xoo$OoXXoO+ooX-",
    "=.oo%oo.Xoo%oo.=",
    "* .o+ X  X +o. *",
    "* .+O X  X O+. *",
    "=oo%+o@Xooo+%oo=",
    "*.o%X.o..o..%o.=",
    "*o&$  X  X  $&o*",
    "-X@o Xo .o. o@X-",
    "<>,,,<<,><<<<<<<"};

/* XPM */
static const char *icon_component[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 128 2",
    "   c gray99",
    ".  c #EB6D79",
    "X  c #73CAE5",
    "o  c #CF5960",
    "O  c #FFB2B7",
    "+  c #8FDDF9",
    "@  c #70AC33",
    "#  c #FE8992",
    "$  c #EA6C74",
    "%  c #72C5E4",
    "&  c #E7FBD4",
    "*  c #A3DEF4",
    "=  c gray100",
    "-  c #F4767E",
    ";  c #9DDBF2",
    ":  c #7CCFEE",
    ">  c #D8F8B9",
    ",  c #9AC86D",
    "<  c #DF696F",
    "1  c #FFEEEE",
    "2  c #D1414B",
    "3  c #49AACE",
    "4  c #6FBBDA",
    "5  c #F8D4D6",
    "6  c #F9D8DA",
    "7  c #F5FEEF",
    "8  c #DAEFF7",
    "9  c #59ADCC",
    "0  c #D5424C",
    "q  c #CD3E47",
    "w  c #78C5E3",
    "e  c #EEF9FF",
    "r  c #F08E93",
    "t  c #E7FAD5",
    "y  c #3E8FAF",
    "u  c #C7EDFD",
    "i  c #F3B7BB",
    "p  c #EDF8FC",
    "a  c #FFC5C8",
    "s  c #F9D3D5",
    "d  c #D8EEF7",
    "f  c #D5EEF7",
    "g  c #FDECEE",
    "h  c #5EABC6",
    "j  c #CB5861",
    "k  c #D2535C",
    "l  c #E4FBD3",
    "z  c #EAFBD9",
    "x  c #9DD070",
    "c  c #A3D375",
    "v  c #45A3C6",
    "b  c #AFDE79",
    "n  c #72C2DF",
    "m  c #9ECA72",
    "M  c #A2CF74",
    "N  c #B5383E",
    "B  c #D5EDF7",
    "V  c #E57076",
    "C  c #6CBBD7",
    "Z  c #F9D7D9",
    "A  c #76C2E0",
    "S  c #48A7CA",
    "D  c #BAE1F0",
    "F  c #D6EDF6",
    "G  c #D7EEC0",
    "H  c #B3E3FF",
    "J  c #C8EDA2",
    "K  c #FFB5B3",
    "L  c #93D2EC",
    "P  c #DC666E",
    "I  c #F9D3D6",
    "U  c #93C064",
    "Y  c #63AFCC",
    "T  c #93C365",
    "R  c #BB242F",
    "E  c #2B90B4",
    "W  c #B5E8FC",
    "Q  c #5FACCA",
    "!  c #FBFBFB",
    "~  c None",
    "^  c black",
    "/  c black",
    "(  c black",
    ")  c black",
    "_  c black",
    "`  c black",
    "'  c black",
    "]  c black",
    "[  c black",
    "{  c black",
    "}  c black",
    "|  c black",
    " . c black",
    ".. c black",
    "X. c black",
    "o. c black",
    "O. c black",
    "+. c black",
    "@. c black",
    "#. c black",
    "$. c black",
    "%. c black",
    "&. c black",
    "*. c black",
    "=. c black",
    "-. c black",
    ";. c black",
    ":. c black",
    ">. c black",
    ",. c black",
    "<. c black",
    "1. c black",
    "2. c black",
    "3. c black",
    "4. c black",
    "5. c black",
    "6. c black",
    "7. c black",
    "8. c black",
    "9. c black",
    "0. c black",
    "q. c black",
    "w. c black",
    "e. c black",
    "r. c black",
    "t. c black",
    "y. c black",
    "u. c black",
    /* pixels */
    "~ ~ ~ ~ ~ ~ ~ ! ! ! ~ ~ ~ ~ ~ ~ ",
    "~ ~ ~ ~ ~ ! ! Q Q Q ! ! ~ ~ ~ ~ ",
    "~ ~ ~ ~ ! Q Y * w W Q Q ! ~ ~ ~ ",
    "~ ~ ! ! Q W ; * n ; W W y ! ~ ~ ",
    "~   T , Q = W W A W W : 3 ! ~ ~ ",
    "! T > J Q 8 e u 9 X X : S   ~ ~ ",
    "! T = > Q d L p C % % + v   ~ ~ ",
    "! T z 7 Q D H f 4 + + % E o   ! ",
    "! T l M G h F B X X E E O O N ! ",
    "! T m x & c E E E E V O O - 0 ! ",
    "! ! U t & b o 6 1 a k . . - 2 ! ",
    "~ ~ ! @ @ @ o Z r g P $ $ # q ! ",
    "~ ~ ~ ! ! ! o i K I < # # $ R ! ",
    "~ ~ ~ ~ ~ ! ! j 5 s . . R R ! ! ",
    "~ ~ ~ ~ ~ ~ ~ ! R R R R   ! ~ ~ ",
    "~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! ~ ~ ~ ~ "};

/* XPM */
static const char *icon_extension[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 32 1",
    "  c #A9EB56",
    ". c #C7EF95",
    "X c #89D538",
    "o c #7CBC2A",
    "O c #77C92C",
    "+ c #99DE45",
    "@ c #6AB224",
    "# c #BBED87",
    "$ c #55BB1B",
    "% c #319311",
    "& c #55A71D",
    "* c #3D9A14",
    "= c #83CD32",
    "- c #4BA21A",
    "; c #6ACA24",
    ": c #62AD22",
    "> c #8EDE39",
    ", c #76B929",
    "< c #4EB818",
    "1 c #389613",
    "2 c #5CAA20",
    "3 c #72B728",
    "4 c #76B927",
    "5 c #459E18",
    "6 c #60BF20",
    "7 c #6FB525",
    "8 c #6FC528",
    "9 c #68C224",
    "0 c #79D12D",
    "q c #6ACE20",
    "w c gray100",
    "e c None",
    /* pixels */
    "eeeeewwweeeeeeee",
    "eeeewoooweeeeeee",
    "eeewo. +oweeeeee",
    "eeewo X+4weeeeee",
    "wwwww, ,wwwweeee",
    "wooo,. 77@:weeee",
    "wo...+=+>>2wwwee",
    "wooo>==OOX&w-5we",
    "woww3XOO80O5#>*w",
    "ewew7XO8966$$<1w",
    "w4ww@X006;*1<<%w",
    "w,7@X2&-0;1w%%we",
    "w,#X:www*q1wwwee",
    "w3+X2wew*q%weeee",
    "w7@:&-w*11%weeee",
    "wwwwwwewwwwweeee"};

/* XPM */
static const char *door_in[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 178 2",
    "   c #34752E",
    ".  c #397136",
    "X  c #377931",
    "o  c #3B7E34",
    "O  c #3D7339",
    "+  c #3F743B",
    "@  c #40733C",
    "#  c #41763D",
    "$  c gray27",
    "%  c gray28",
    "&  c gray29",
    "*  c #4C4C4C",
    "=  c gray31",
    "-  c #515151",
    ";  c gray33",
    ":  c #585858",
    ">  c gray36",
    ",  c #467C41",
    "<  c #577F54",
    "1  c #606060",
    "2  c #717171",
    "3  c #727272",
    "4  c gray46",
    "5  c #777777",
    "6  c gray48",
    "7  c #7C7C7C",
    "8  c gray49",
    "9  c #7E7E7E",
    "0  c #8F570C",
    "q  c #90580D",
    "w  c #91590F",
    "e  c #925A10",
    "r  c #925C13",
    "t  c #945C13",
    "y  c #986019",
    "u  c #9C641F",
    "i  c #9D6725",
    "p  c #A16925",
    "a  c #A66E2C",
    "s  c #A56F2F",
    "d  c #A87432",
    "f  c #AB7334",
    "g  c #AA7436",
    "h  c #AF7C3D",
    "j  c #AD7E3E",
    "k  c #B1793B",
    "l  c #B0793D",
    "z  c #AE7F40",
    "x  c #B67E43",
    "c  c #B47E45",
    "v  c #3E8237",
    "b  c #42873B",
    "n  c #45893D",
    "m  c #458A3D",
    "M  c #468B3E",
    "N  c #488D3F",
    "B  c #4B8345",
    "V  c #4C8F46",
    "C  c #4D8F47",
    "Z  c #4F8A49",
    "A  c #4A9041",
    "S  c #4B9142",
    "D  c #4D9444",
    "F  c #4F9049",
    "G  c #509149",
    "H  c #599152",
    "J  c #589851",
    "K  c #61A05A",
    "L  c #65A45D",
    "P  c #7CC073",
    "I  c #7CC074",
    "U  c #7FC177",
    "Y  c #AE8041",
    "T  c #AF8143",
    "R  c #B18345",
    "E  c #B18547",
    "W  c #B58447",
    "Q  c #B88B42",
    "!  c #BC844B",
    "~  c #BA844C",
    "^  c #B3884B",
    "/  c #B4894F",
    "(  c #BA8A4E",
    ")  c #B58B51",
    "_  c #B68D53",
    "`  c #B78F56",
    "'  c #BF8954",
    "]  c #B89058",
    "[  c #B9915A",
    "{  c #C18952",
    "}  c #C68E59",
    "|  c #C48E5A",
    " . c #C79554",
    ".. c #C89658",
    "X. c #C99A5A",
    "o. c #C99A5B",
    "O. c #CA9B5E",
    "+. c #DFB45F",
    "@. c #C99260",
    "#. c #CB9360",
    "$. c #CC9666",
    "%. c #CF9766",
    "&. c #CC9E61",
    "*. c #CC9F62",
    "=. c #CC9F63",
    "-. c #D29A6A",
    ";. c #D09A6C",
    ":. c #D39D6F",
    ">. c #D49C6D",
    ",. c #D69E6F",
    "<. c #D49E71",
    "1. c #D69E70",
    "2. c #CFA367",
    "3. c #CDA069",
    "4. c #D1A666",
    "5. c #D1A86E",
    "6. c #D1A773",
    "7. c #D4AD75",
    "8. c #D6AF74",
    "9. c #D2AB78",
    "0. c #D3AB78",
    "q. c #D4AF7D",
    "w. c #D7B37C",
    "e. c #D7B37E",
    "r. c #D7B47D",
    "t. c #E1B863",
    "y. c #81C378",
    "u. c #81C279",
    "i. c #83C37B",
    "p. c #87C67D",
    "a. c #FFD44B",
    "s. c #EDC45E",
    "d. c #808080",
    "f. c gray60",
    "g. c #999A99",
    "h. c #9A9A9A",
    "j. c #9B9B9B",
    "k. c gray61",
    "l. c #9D9D9D",
    "z. c gray62",
    "x. c #9F9F9F",
    "c. c #A0A0A0",
    "v. c #A1A1A0",
    "b. c gray63",
    "n. c #A2A2A2",
    "m. c gray64",
    "M. c #A4A4A4",
    "N. c #A5A5A5",
    "B. c #D7B382",
    "V. c #DAB185",
    "C. c #DCB287",
    "Z. c #DAB883",
    "A. c #DAB983",
    "S. c #DAB984",
    "D. c #D9B788",
    "F. c #DCBD89",
    "G. c #DCBD8B",
    "H. c #DBBB8D",
    "J. c #DDBF94",
    "K. c #88C680",
    "L. c #8DC884",
    "P. c #92CB89",
    "I. c #96CD8D",
    "U. c #99CE8F",
    "Y. c #9AD091",
    "T. c #9FD294",
    "R. c #DFC18F",
    "E. c #DEC291",
    "W. c #E0C398",
    "Q. c #E1C798",
    "!. c #E2C79E",
    "~. c #E3CBA2",
    "^. c #E5CEA7",
    "/. c #E6D0A9",
    "(. c #E7D1AA",
    "). c #E7D1AB",
    "_. c #E8D3AB",
    "`. c None",
    /* pixels */
    "`.`.`.`.`.`.`.`.`.`.`.`.`.>.-.%.",
    "`.`.`.`.`.`.`.`.`.`.`.1.>.V.[ #.",
    "`.`.d.9 7 6 5 4 3 <.,.C._./.] } ",
    "`.`.8 f.f.h.h.j.j.:.(.).Q.E.` { ",
    "`.`.6 f.H g.j.k.k.;.^.R.F.G._ ! ",
    "`.`.5 h.m Z k.l.l.$.~.F.A.S.) x ",
    "D S N n L K B z.z.@.!.Z.r.e./ k ",
    "A T.Y.I.P.L.J , x.| W.w.8.s.^ f ",
    "M U.p.y.P I u.F < ' J.7.t.a.Q a ",
    "b P.L.K.i.U C + b.~ H.5.4.+.E p ",
    "v o X   G V O b.n.c D.2.&.=.R u ",
    "`.`.1 c.# . n.n.m.l B.*.X.O.T y ",
    "`.`.> b.@ v.m.m.M.g q.o. ...Y t ",
    "`.`.: n.n.m.M.M.N.s 9.0.6.3.z w ",
    "f.2 ; - = * & % $ i d h W ( j 0 ",
    "`.`.`.`.`.`.`.`.`.`.`.`.e q r 0 "};

/* XPM */
static const char *door_open[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 138 2",
    "   c gray27",
    ".  c gray28",
    "X  c gray29",
    "o  c #4C4C4C",
    "O  c gray31",
    "+  c #515151",
    "@  c gray33",
    "#  c #585858",
    "$  c gray36",
    "%  c #606060",
    "&  c #646464",
    "*  c #686868",
    "=  c #6C6C6C",
    "-  c gray44",
    ";  c #717171",
    ":  c #727272",
    ">  c gray45",
    ",  c gray46",
    "<  c #777777",
    "1  c gray48",
    "2  c #7C7C7C",
    "3  c gray49",
    "4  c #7E7E7E",
    "5  c #8F570C",
    "6  c #90580D",
    "7  c #91590F",
    "8  c #925A10",
    "9  c #925C13",
    "0  c #945C13",
    "q  c #986019",
    "w  c #9C641F",
    "e  c #9D6725",
    "r  c #A16925",
    "t  c #A66E2C",
    "y  c #A56F2F",
    "u  c #A87432",
    "i  c #AB7334",
    "p  c #AA7436",
    "a  c #AF7C3D",
    "s  c #AD7E3E",
    "d  c #B1793B",
    "f  c #B0793D",
    "g  c #AE7F40",
    "h  c #B67E43",
    "j  c #B47E45",
    "k  c #AE8041",
    "l  c #AF8143",
    "z  c #B18345",
    "x  c #B18547",
    "c  c #B58447",
    "v  c #B88B42",
    "b  c #BC844B",
    "n  c #BA844C",
    "m  c #B3884B",
    "M  c #B4894F",
    "N  c #BA8A4E",
    "B  c #B58B51",
    "V  c #B68D53",
    "C  c #B78F56",
    "Z  c #BF8954",
    "A  c #B89058",
    "S  c #B9915A",
    "D  c #C18952",
    "F  c #C68E59",
    "G  c #C48E5A",
    "H  c #C79554",
    "J  c #C89658",
    "K  c #C99A5A",
    "L  c #C99A5B",
    "P  c #CA9B5E",
    "I  c #DFB45F",
    "U  c #C99260",
    "Y  c #CB9360",
    "T  c #CC9666",
    "R  c #CF9766",
    "E  c #CC9E61",
    "W  c #CC9F62",
    "Q  c #CC9F63",
    "!  c #D29A6A",
    "~  c #D09A6C",
    "^  c #D39D6F",
    "/  c #D49C6D",
    "(  c #D69E6F",
    ")  c #D49E71",
    "_  c #D69E70",
    "`  c #CFA367",
    "'  c #CDA069",
    "]  c #D1A666",
    "[  c #D1A86E",
    "{  c #D1A773",
    "}  c #D4AD75",
    "|  c #D6AF74",
    " . c #D2AB78",
    ".. c #D3AB78",
    "X. c #D4AF7D",
    "o. c #D7B37C",
    "O. c #D7B37E",
    "+. c #D7B47D",
    "@. c #E1B863",
    "#. c #FFD44B",
    "$. c #EDC45E",
    "%. c #808080",
    "&. c gray60",
    "*. c #9A9A9A",
    "=. c #9B9B9B",
    "-. c gray61",
    ";. c #9D9D9D",
    ":. c gray62",
    ">. c #9F9F9F",
    ",. c #A0A0A0",
    "<. c gray63",
    "1. c #A2A2A2",
    "2. c gray64",
    "3. c #A4A4A4",
    "4. c #A5A5A5",
    "5. c #D7B382",
    "6. c #DAB185",
    "7. c #DCB287",
    "8. c #DAB883",
    "9. c #DAB983",
    "0. c #DAB984",
    "q. c #D9B788",
    "w. c #DCBD89",
    "e. c #DCBD8B",
    "r. c #DBBB8D",
    "t. c #DDBF94",
    "y. c #DFC18F",
    "u. c #DEC291",
    "i. c #E0C398",
    "p. c #E1C798",
    "a. c #E2C79E",
    "s. c #E3CBA2",
    "d. c #E5CEA7",
    "f. c #E6D0A9",
    "g. c #E7D1AA",
    "h. c #E7D1AB",
    "j. c #E8D3AB",
    "k. c None",
    /* pixels */
    "k.k.k.k.k.k.k.k.k.k.k.k.k./ ! R ",
    "k.k.k.k.k.k.k.k.k.k.k._ / 6.S Y ",
    "k.k.%.4 2 1 < , : ) ( 7.j.f.A F ",
    "k.k.3 &.&.*.*.=.=.^ g.h.p.u.C D ",
    "k.k.1 &.*.*.=.-.-.~ d.y.w.e.V b ",
    "k.k.< *.=.=.-.;.;.T s.w.9.0.B h ",
    "k.k.> =.-.-.;.:.:.U a.8.+.O.M d ",
    "k.k.- -.;.;.:.>.>.G i.o.| $.m i ",
    "k.k.= ;.:.:.>.>.,.Z t.} @.#.v t ",
    "k.k.* :.>.>.,.,.<.n r.[ ] I x r ",
    "k.k.& >.>.,.<.<.1.j q.` E Q z w ",
    "k.k.% ,.,.<.1.1.2.f 5.W K P l q ",
    "k.k.$ <.<.1.2.2.3.p X.L H J k 0 ",
    "k.k.# 1.1.2.3.3.4.y  ...{ ' g 7 ",
    "&.; @ + O o X .   e u a c N s 5 ",
    "k.k.k.k.k.k.k.k.k.k.k.k.8 6 9 5 "};

/* XPM */
static const char *door_out[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 175 2",
    "   c #256321",
    ".  c #276623",
    "X  c #286724",
    "o  c #2A6A26",
    "O  c #2C6C27",
    "+  c #2D6E28",
    "@  c #30702A",
    "#  c #34752E",
    "$  c #377931",
    "%  c #3B7E34",
    "&  c #3E7639",
    "*  c #3F773A",
    "=  c #40733C",
    "-  c #41763D",
    ";  c gray27",
    ":  c gray28",
    ">  c gray29",
    ",  c #4C4C4C",
    "<  c gray31",
    "1  c #515151",
    "2  c gray33",
    "3  c #585858",
    "4  c gray36",
    "5  c #606060",
    "6  c #717171",
    "7  c #727272",
    "8  c gray46",
    "9  c #777777",
    "0  c gray48",
    "q  c #7C7C7C",
    "w  c gray49",
    "e  c #7E7E7E",
    "r  c #8F570C",
    "t  c #90580D",
    "y  c #91590F",
    "u  c #925A10",
    "i  c #925C13",
    "p  c #945C13",
    "a  c #986019",
    "s  c #9C641F",
    "d  c #9D6725",
    "f  c #A16925",
    "g  c #A66E2C",
    "h  c #A56F2F",
    "j  c #A87432",
    "k  c #AB7334",
    "l  c #AA7436",
    "z  c #AF7C3D",
    "x  c #AD7E3E",
    "c  c #B1793B",
    "v  c #B0793D",
    "b  c #AE7F40",
    "n  c #B67E43",
    "m  c #B47E45",
    "M  c #3E8237",
    "N  c #3F8338",
    "B  c #458A3D",
    "V  c #468B3E",
    "C  c #478C3F",
    "Z  c #4F8947",
    "A  c #509149",
    "S  c #54904D",
    "D  c #54954D",
    "F  c #599152",
    "G  c #5D9D56",
    "H  c #65A45D",
    "J  c #66A55E",
    "K  c #67A65F",
    "L  c #69A760",
    "P  c #71BB69",
    "I  c #75BC6F",
    "U  c #77BD6E",
    "Y  c #79BE72",
    "T  c #7CBF75",
    "R  c #7CC073",
    "E  c #7FC177",
    "W  c #AE8041",
    "Q  c #AF8143",
    "!  c #B18345",
    "~  c #B18547",
    "^  c #B58447",
    "/  c #B88B42",
    "(  c #BC844B",
    ")  c #BA844C",
    "_  c #B3884B",
    "`  c #B4894F",
    "'  c #BA8A4E",
    "]  c #B58B51",
    "[  c #B68D53",
    "{  c #B78F56",
    "}  c #BF8954",
    "|  c #B89058",
    " . c #B9915A",
    ".. c #C18952",
    "X. c #C68E59",
    "o. c #C48E5A",
    "O. c #C79554",
    "+. c #C89658",
    "@. c #C99A5A",
    "#. c #C99A5B",
    "$. c #CA9B5E",
    "%. c #DFB45F",
    "&. c #C99260",
    "*. c #CB9360",
    "=. c #CC9666",
    "-. c #CF9766",
    ";. c #CC9E61",
    ":. c #CC9F62",
    ">. c #CC9F63",
    ",. c #D29A6A",
    "<. c #D09A6C",
    "1. c #D39D6F",
    "2. c #D49C6D",
    "3. c #D69E6F",
    "4. c #D49E71",
    "5. c #D69E70",
    "6. c #CFA367",
    "7. c #CDA069",
    "8. c #D1A666",
    "9. c #D1A86E",
    "0. c #D1A773",
    "q. c #D4AD75",
    "w. c #D6AF74",
    "e. c #D2AB78",
    "r. c #D3AB78",
    "t. c #D4AF7D",
    "y. c #D7B37C",
    "u. c #D7B37E",
    "i. c #D7B47D",
    "p. c #E1B863",
    "a. c #83C37B",
    "s. c #86C57D",
    "d. c #FFD44B",
    "f. c #EDC45E",
    "g. c #808080",
    "h. c #989998",
    "j. c gray60",
    "k. c #9A9A9A",
    "l. c #9B9B9B",
    "z. c gray61",
    "x. c #9D9D9D",
    "c. c #A0A0A0",
    "v. c gray63",
    "b. c #A2A2A2",
    "n. c gray64",
    "m. c #A4A4A4",
    "M. c #A5A5A5",
    "N. c #D7B382",
    "B. c #DAB185",
    "V. c #DCB287",
    "C. c #DAB883",
    "Z. c #DAB983",
    "A. c #DAB984",
    "S. c #D9B788",
    "D. c #DCBD89",
    "F. c #DCBD8B",
    "G. c #DBBB8D",
    "H. c #DDBF94",
    "J. c #88C680",
    "K. c #8DC884",
    "L. c #92CB89",
    "P. c #94CC8B",
    "I. c #96CD8D",
    "U. c #DFC18F",
    "Y. c #DEC291",
    "T. c #E0C398",
    "R. c #E1C798",
    "E. c #E2C79E",
    "W. c #E3CBA2",
    "Q. c #E5CEA7",
    "!. c #E6D0A9",
    "~. c #E7D1AA",
    "^. c #E7D1AB",
    "/. c #E8D3AB",
    "(. c None",
    /* pixels */
    "(.(.(.(.(.(.(.(.(.(.(.(.(.2.,.-.",
    "(.(.(.(.(.(.(.(.(.(.(.5.2.B. .*.",
    "(.(.g.e q 0 9 8 7 4.3.V./.!.| X.",
    "(.(.w j.j.k.k.l.l.1.~.^.R.Y.{ ..",
    "(.(.0 h.F k.l.z.z.<.Q.U.D.F.[ ( ",
    "(.(.9 S B l.z.x.x.=.W.D.Z.A.] n ",
    "(.(.Z L H M % $ # &.E.C.i.u.` c ",
    "(.C K I.L.K.J.a.@ o.T.y.w.f._ k ",
    "V J P.s.R U P T O } H.q.p.d./ g ",
    "(.N G J.a.E Y I X ) G.9.8.%.~ f ",
    "(.(.& D A + o .   m S.6.;.>.! s ",
    "(.(.5 * - v.b.b.n.v N.:.@.$.Q a ",
    "(.(.4 c.= b.n.n.m.l t.#.O.+.W p ",
    "(.(.3 b.b.n.m.m.M.h e.r.0.7.b y ",
    "j.6 2 1 < , > : ; d j z ^ ' x r ",
    "(.(.(.(.(.(.(.(.(.(.(.(.u t i r "};

/* XPM */
static const char *icon_link[] = {
    /* columns rows colors chars-per-pixel */
    "16 16 43 1",
    "  c #323232",
    ". c #3F3F3F",
    "X c #414141",
    "o c #464646",
    "O c gray29",
    "+ c #4B4B4B",
    "@ c #4C4C4C",
    "# c gray30",
    "$ c #515151",
    "% c gray32",
    "& c #585858",
    "* c #646464",
    "= c #656565",
    "- c #676767",
    "; c gray42",
    ": c #717171",
    "> c gray45",
    ", c gray47",
    "< c #797979",
    "1 c #7B7B7B",
    "2 c #7C7C7C",
    "3 c #818181",
    "4 c gray51",
    "5 c gray52",
    "6 c #8D8D8D",
    "7 c gray57",
    "8 c #929292",
    "9 c #979797",
    "0 c gray62",
    "q c gray66",
    "w c #AAAAAA",
    "e c gray68",
    "r c #AEAEAE",
    "t c gray74",
    "y c #C1C1C1",
    "u c gray76",
    "i c gray77",
    "p c #CECECE",
    "a c #D5D5D5",
    "s c gray85",
    "d c #DDDDDD",
    "f c gray91",
    "g c None",
    /* pixels */
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggg502gg205gggg",
    "gg@7fdy31sdi7@gg",
    "gg>a&+=8<=+&q>gg",
    "g 4gg.tpue.gg4 g",
    "gg-g%Xo$$oX%g-gg",
    "gg#6wr9:,9rw6#gg",
    "gggO*;;gg;;*Oggg",
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggggggggggggggg",
    "gggggggggggggggg"};

#ifdef MAC_INTEGRATION
#define wave_gdk_pixmap_create_from_xpm_d(A, B, C, D) gdk_pixmap_create_from_xpm_d(A, NULL, C, D)
#else
#define wave_gdk_pixmap_create_from_xpm_d(A, B, C, D) gdk_pixmap_create_from_xpm_d(A, B, C, D)
#endif

GwHierarchyIcons *gw_hierarchy_icons_new(void)
{
    GwHierarchyIcons *self = g_new0(GwHierarchyIcons, 1);

    /* Verilog */
    self->module = gdk_pixbuf_new_from_xpm_data(chart_organisation);
    self->task = gdk_pixbuf_new_from_xpm_data(cog);
    self->function = gdk_pixbuf_new_from_xpm_data(chart_line);
    self->begin = gdk_pixbuf_new_from_xpm_data(flag_green);
    self->fork = gdk_pixbuf_new_from_xpm_data(arrow_divide);

    /* SV */
    self->interface = gdk_pixbuf_new_from_xpm_data(arrow_inout);
    self->svpackage = gdk_pixbuf_new_from_xpm_data(package);
    self->program = gdk_pixbuf_new_from_xpm_data(application);
    self->class = gdk_pixbuf_new_from_xpm_data(plugin);

    /* VHDL */
    self->design = gdk_pixbuf_new_from_xpm_data(database);
    self->block = gdk_pixbuf_new_from_xpm_data(brick);
    self->generateif = gdk_pixbuf_new_from_xpm_data(arrow_switch);
    self->generatefor = gdk_pixbuf_new_from_xpm_data(arrow_rotate_clockwise);
    self->instance = gdk_pixbuf_new_from_xpm_data(icon_component);
    self->package = gdk_pixbuf_new_from_xpm_data(box);

    self->signal = gdk_pixbuf_new_from_xpm_data(signal_gtkwave);
    self->portin = gdk_pixbuf_new_from_xpm_data(door_in);
    self->portout = gdk_pixbuf_new_from_xpm_data(door_out);
    self->portinout = gdk_pixbuf_new_from_xpm_data(door_open);
    self->buffer = gdk_pixbuf_new_from_xpm_data(icon_extension);
    self->linkage = gdk_pixbuf_new_from_xpm_data(icon_link);

    /* FSDB VHDL (on top of GHW's existing) */
    self->record = gdk_pixbuf_new_from_xpm_data(cd_img);
    self->generate = gdk_pixbuf_new_from_xpm_data(arrow_redo);

    return self;
}

GdkPixbuf *gw_hierarchy_icons_get(GwHierarchyIcons *self, guint tree_kind)
{
    g_return_val_if_fail(self != NULL, NULL);

    // clang-format off
    switch (tree_kind) {
        case GW_TREE_KIND_VCD_ST_MODULE:    return self->module;
        case GW_TREE_KIND_VCD_ST_TASK:      return self->task;
        case GW_TREE_KIND_VCD_ST_FUNCTION:  return self->function;
        case GW_TREE_KIND_VCD_ST_BEGIN:     return self->begin;
        case GW_TREE_KIND_VCD_ST_FORK:      return self->fork;
        case GW_TREE_KIND_VCD_ST_GENERATE:  return self->generatefor; // same as GW_TREE_KIND_VHDL_ST_GENFOR
        case GW_TREE_KIND_VCD_ST_STRUCT:    return self->block;       // same as GW_TREE_KIND_VHDL_ST_BLOCK
        case GW_TREE_KIND_VCD_ST_UNION:     return self->instance;    // same as GW_TREE_KIND_VHDL_ST_INSTANCE
        case GW_TREE_KIND_VCD_ST_CLASS:     return self->class;
        case GW_TREE_KIND_VCD_ST_INTERFACE: return self->interface;
        case GW_TREE_KIND_VCD_ST_PACKAGE:   return self->svpackage;
        case GW_TREE_KIND_VCD_ST_PROGRAM:   return self->program;

        case GW_TREE_KIND_VHDL_ST_DESIGN:   return self->design;
        case GW_TREE_KIND_VHDL_ST_BLOCK:    return self->block;
        case GW_TREE_KIND_VHDL_ST_GENIF:    return self->generateif;
        case GW_TREE_KIND_VHDL_ST_GENFOR:   return self->generatefor;
        case GW_TREE_KIND_VHDL_ST_INSTANCE: return self->instance;
        case GW_TREE_KIND_VHDL_ST_PACKAGE:  return self->package;

        case GW_TREE_KIND_VHDL_ST_SIGNAL:    return self->signal;
        case GW_TREE_KIND_VHDL_ST_PORTIN:    return self->portin;
        case GW_TREE_KIND_VHDL_ST_PORTOUT:   return self->portout;
        case GW_TREE_KIND_VHDL_ST_PORTINOUT: return self->portinout;
        case GW_TREE_KIND_VHDL_ST_BUFFER:    return self->buffer;
        case GW_TREE_KIND_VHDL_ST_LINKAGE:   return self->linkage;

        case GW_TREE_KIND_VHDL_ST_ARCHITECTURE: return self->module; // same as GW_TREE_KIND_VCD_ST_MODULE
        case GW_TREE_KIND_VHDL_ST_FUNCTION:     return self->function; // same as GW_TREE_KIND_VCD_ST_FUNCTION
        case GW_TREE_KIND_VHDL_ST_PROCESS:      return self->task; // same as GW_TREE_KIND_VCD_ST_TASK
        case GW_TREE_KIND_VHDL_ST_PROCEDURE:    return self->class; // same as GW_TREE_KIND_VCD_ST_CLASS
        case GW_TREE_KIND_VHDL_ST_RECORD:       return self->record;
        case GW_TREE_KIND_VHDL_ST_GENERATE:     return self->generate;

        default:
            return NULL;
    }
    // clang-format on
}